home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / FAQs / netfaqs / X-faq < prev    next >
Text File  |  1994-08-01  |  266KB  |  5,372 lines

  1.  
  2. Newsgroups: comp.windows.x,news.answers,comp.answers
  3. Path: bloom-beacon.mit.edu!hookup!swrinde!cs.utexas.edu!uunet!visual!dbl
  4. From: dbl@visual.com (David B. Lewis)
  5. Subject: comp.windows.x Frequently Asked Questions (FAQ)
  6. Message-ID: <CM59H8.A0s@visual.com>
  7. Followup-To: poster
  8. Summary: useful information about the X Window System
  9. Reply-To: faq%craft@uunet.uu.net (X FAQ maintenance address)
  10. Organization: VISUAL, Inc.
  11. Date: Fri, 4 Mar 1994 14:27:07 GMT
  12. Approved: news-answers-request@MIT.Edu
  13. Expires: Sun, 3 Apr 1994 00:00:00 GMT
  14. Lines: 909
  15. Xref: bloom-beacon.mit.edu comp.windows.x:22112 news.answers:16014 comp.answers:4031
  16.  
  17. Last-modified: 1994/03/03
  18.  
  19. This article and several following contain the answers to some Frequently Asked 
  20. Questions (FAQ) often seen in comp.windows.x. It is posted to help reduce 
  21. volume in this newsgroup and to provide hard-to-find information of general 
  22. interest.
  23.  
  24.         Please redistribute this article!
  25.  
  26. This article includes answers to the following questions, which are loosely
  27. grouped into categories. Questions marked with a + indicate questions new to 
  28. this issue; those with significant changes of content since the last issue are 
  29. marked by !:
  30.  
  31.   0)  TOPIC: BASIC INFORMATION SOURCES AND DEFINITIONS
  32.   1)! What books and articles on X are good for beginners?
  33.   2)  What courses on X and various X toolkits are available?
  34.   3)  What conferences on X are coming up?
  35.   4)  What X-related public mailing lists are available?
  36.   5)  How can I meet other X developers? (What X user groups are there?)
  37.   6)  What related FAQs are available?
  38.   7)  How do I ask a net-question so as to maximize helpful responses?
  39.   8)  What publications discussing X are available?
  40.   9)  What are these common abbreviations/acronyms?
  41.  10)  What is the ICCCM? (How do I write X-friendly applications?)
  42.  11)  What is the X Consortium, and how do I join?
  43.  12)  Just what are OPEN LOOK and Motif?
  44.  13)  What is "low-bandwidth X" (LBX)? XRemote? PPP? SLIP? CSLIP?
  45.  14)  TOPIC: USING X IN DAY-TO-DAY LIFE
  46.  15)! What are all these different window managers?
  47.  16)  Why does my X session exit when I kill my window manager (sic)?
  48.  17)  Can I save the state of my X session, like toolplaces does?
  49.  18)  How do I use another window manager with DEC's session manager?
  50.  19)! How do I change the keyboard auto-repeat rate?
  51.  20)  How do I remap the keys on my keyboard to produce a string?
  52.  21)  How do I make a screendump or print my application (including menus)?
  53.  22)  How do I make a color PostScript screendump of the X display?
  54.  23)  How do I make a screendump including the X cursor?
  55.  24)  How do I convert or view Mac/TIFF/GIF/Sun/PICT/img/FAX images in X?
  56.  25)  Where can I get an X-based 3-D object viewer?
  57.  26)  How can I change the titlebar of my xterm window?
  58.  27)  Where can I find the xterm control sequences?
  59.  28)  How can I use characters above ASCII 127 in xterm ?
  60.  29)  Why are my xterm menus so small (sic) ?
  61.  30)  How can I print the current X selection?
  62.  31)  How does Xt use environment variables in loading resources?
  63.  32)  How to I have xdm put a picture behind the log-in window?
  64.  33)  Why isn't my PATH set when xdm runs my .xsession file?
  65.  34)  How do I keep my $DISPLAY when I rlogin to another machine?
  66.  35)! How can I design my own font?
  67.  36)  Why does adding a font to the server not work (sic)?
  68.  37)  How do I convert a ".snf" font back to ".bdf" font?
  69.  38)  What is a general method of getting a font in usable format?
  70.  39)  How do I use DECwindows fonts on my non-DECwindows server?
  71.  40)  How can I set backgroundPixmap in a defaults file? (What is XPM?) 
  72.  41)  Why can't I override translations? Only the first item works. (sic)
  73.  42)  How can I have a clock show different timezones?
  74.  43)  I have xmh, but it doesn't work. Where can I get MH?
  75.  44)  Why am I suddenly unable to connect to my Sun X server?  
  76.  45)  Why don't the R5 PEX demos work on my mono screen?
  77.  46)  How do I get my Sun Type-[45] keyboard fully supported by Xsun?
  78.  47)  How do I report bugs in X?
  79.  48)  Why do I get "Warning: Widget class version mismatch"?
  80.  49)+  Why does my SPARC say "Mapping cg3c: No such device or address"?
  81.  50)  Where can I find a dictionary server for xwebster?
  82.  51)  TOPIC: OBTAINING X AND RELATED SOFTWARE AND HARDWARE
  83.  52)  Is X public-domain software?
  84.  53)  How compatible are X11R3, R4, and R5? What changes are there?
  85.  54)  When is X11R6 rumored to be available?
  86.  55)  When is Fresco rumored to be available?
  87.  56)  Where can I get X11R5 (source and/or binaries)?
  88.  57)  Where can I get XDM's Wraphelp.c ?
  89.  58)  Where can I get patches to X11R5? 
  90.  59)  What is the xstuff mail-archive?
  91.  60)  Where can I get X11R4 (source and binaries)?
  92.  61)  Where can I get OSF/Motif?
  93.  62)  Does Motif work with X11R4? X11R5?
  94.  63)  Where can I get toolkits implementing OPEN LOOK?
  95.  64)  Where can I get other X sources? (including R5 modifications)
  96.  65)! Where can I get interesting widgets?
  97.  66)  Where can I get a good file-selector widget?
  98.  67)  Where can I find a hypertext widget in source code?
  99.  68)  What widget is appropriate to use as a drawing canvas?
  100.  69)  What is the current state of the world in X terminals?
  101.  70)  Where can I get an X server with a touchscreen or lightpen?
  102.  71)  Where can I get an X server on a PC (DOS or Unix)?
  103.  72)  Where can I get an X server on a Macintosh running MacOS?
  104.  73)  Where can I get X for the Amiga?
  105.  74)  Where can I get a serial-based X server for connecting from home?
  106.  75)  Where can I get a fast X server for a workstation?
  107.  76)  Where can I get a server for my high-end Sun graphics board?
  108.  77)  Where can I get an "X terminal" server for my low-end Sun 3/50?
  109.  78)  What terminal emulators other than xterm are available?
  110.  79)  Does xterm offer colored text or a blinking cursor?
  111.  80)! Where can I get an X-based editor or word-processor?
  112.  81)  Where can I get an X-based mailer?
  113.  82)! Where can I get an X-based paint/draw program?
  114.  83)  Where can I get an X-based plotting program?
  115.  84)  Where can I get an X-based graph-drawing program?
  116.  85)  Where can I get an X-based spreadsheet?
  117.  86)  Where can I get X-based project-management software?
  118.  87)! Where can I get an X-based PostScript previewer?
  119.  88)  Where can I get an X-based GKS package?
  120.  89)  Where can I get an X-based GL package?
  121.  90)  Where can I get an X-based PEX package?
  122.  91)  Where can I get an X-based TeX or DVI previewer?
  123.  92)  Where can I get an X-based troff previewer?
  124.  93)! Where can I get a WYSIWYG interface builder (or other shortcuts)?
  125.  94)  Where can I find X tools callable from shell scripts?
  126.  95)  Where can I get an X-based debugger?
  127.  96)  How can I "tee" an X program identically to several displays? 
  128.  97)  Can I use C++ with X11? Motif? XView?
  129.  98)  Where can I obtain alternate language bindings to X/Xt/Motif?
  130.  99)  TOPIC: BUILDING THE X DISTRIBUTION [topic needs updating to R5]
  131. 100)  What's a good source of information on configuring the X build?
  132. 101)  Why doesn't my Sun with a cg6 work with R5?
  133. 102)  Why doesn't my Sun with SunOS 4.1 know about _dlsym, etc.?
  134. 103)  What is this "_get_wmShellWidgetClass undefined" error?
  135. 104)  What's this problem with undefined _X symbols on SunOS 4.1.3?
  136. 105)  Why does cc get used when I build X11R5 with gcc?
  137. 106)  Why can't gcc 1.x compile X11R4 on my SPARC?
  138. 107)  What are these I/O errors running X built with gcc?
  139. 108)  What are these problems compiling X11R4 on the older Sun3?
  140. 109)  What are these problems compiling the X server on SunOS 4.1.1?
  141. 110)  What are these problems using R4 shared libraries on SunOS 4?
  142. 111)  Can OLIT programs run with R5 Xt? (_XtQString undefined)
  143. 112)  How do I get around the SunOS 4.1 security hole?
  144. 113)  How do I get around the frame-buffer security hole?
  145. 114)  TOPIC: BUILDING X PROGRAMS 
  146. 115)  What is Imake?
  147. 116)  Where can I get imake?
  148. 117)  I have a program with an Imakefile but no Makefile. What to do?
  149. 118)  Why can't I link to the Xlib shape routines?
  150. 119)  What are these problems with "_XtInherit not found" on the Sun?
  151. 120)  TOPIC: PROGRAMMING PROBLEMS AND PUZZLES
  152. 121)  Why doesn't my program get the keystrokes I select for (sic)?
  153. 122)  How do I deiconify a window?
  154. 123)  How do I figure out what window manager is running?
  155. 124)  Is there a skeleton X program available?
  156. 125)  Why does XtGetValues not work for me (sic)?
  157. 126)  Why don't XtConfigureWidget/XtResizeWidget/XtMoveWidget work?
  158. 127)  Why isn't there an XtReparentWidget call like XReparentWindow?
  159. 128)  I'm writing a widget and can't use a float as a resource value.
  160. 129)  Is this a memory leak in the X11R4 XtDestroyWidget()?!
  161. 130)  Is this a memory leak in the X11R4 deletion of work procs?!
  162. 131)  Why does the process size of my X programs go up,up,up?
  163. 132)  Are callbacks guaranteed to be called in the order registered?
  164. 133)  Why doesn't XtDestroyWidget() actually destroy the widget?
  165. 134)  How do I query the user synchronously using Xt?
  166. 135)  How do I determine the name of an existing widget?
  167. 136)  Why do I get a BadDrawable error drawing to XtWindow(widget)?
  168. 137)  Where can I get documentation on Xaw, the Athena widget set?
  169. 138)  What's the difference between actions and callbacks?
  170. 139)  How do I simulate a button press/release event for a widget?
  171. 140)  Can I make Xt or Xlib calls from a signal handler?
  172. 141)  What are these "Xlib sequence lost" errors?
  173. 142)  How can my Xt program handle socket, pipe, or file input?
  174. 143)  Why do I get a BadMatch error when calling XGetImage?
  175. 144)  How can my application tell if it is being run under X?
  176. 145)  How do I make a "busy cursor" while my application is computing?
  177. 146)  How do I fork without hanging my parent X program?
  178. 147)  Why doesn't anything appear when I run this simple program?
  179. 148)  What is the difference between a Screen and a screen?
  180. 149)  Can XGetWindowAttributes get a window's background pixel/pixmap?
  181. 150)  How do I create a transparent window?
  182. 151)  Why doesn't GXxor produce mathematically-correct color values?
  183. 152)  Why does every color I allocate show up as black?
  184. 153)  Why do I get a protocol error when creating a cursor (sic)?
  185. 154)  Why can't my program get a standard colormap?
  186. 155)  Why does the pixmap I copy to the screen show up as garbage? 
  187. 156)  How can I most quickly send an image to the X server? 
  188. 157)  How do I check whether a window ID is valid?
  189. 158)  Can I have two applications draw to the same window?
  190. 159)  Why can't my program work with tvtwm or swm?
  191. 160)  Can I rely on a server which offers backing store?  
  192. 161)  How do I catch the "close window" event to avoid "fatal IO error"?
  193. 162)  How do I keep a window from being resized by the user?
  194. 163)  How do I keep a window in the foreground at all times?
  195. 164)  How do I make text and bitmaps blink in X?
  196. 165)  How do I get a double-click in Xlib?
  197. 166)  How do I render rotated text?
  198. 167)  Why doesn't my multi-threaded X program work (sic) ? 
  199. 168)  What is the X Registry? (How do I reserve names?)
  200.  
  201. If you have suggestions or corrections for any of these answers or any 
  202. additional information, please send them directly to uunet!craft!faq;
  203. the information will be included in the next revision (or possibly the one 
  204. after that; thanks for the many suggestions which haven't been incorporated 
  205. yet). 
  206.  
  207. This version of the FAQ is in the process of having R3 information replaced
  208. by R5 information.
  209.  
  210. This posting is intended to be distributed at approximately the beginning of 
  211. each month. New versions are archived on ftp.x.org and rtfm.mit.edu and are 
  212. also available from mail-server@rtfm.mit.edu and archive-server@nic.switch.ch 
  213. (send "help").
  214.  
  215. ftp.x.org was previously known as export.lcs.mit.edu; x.org was previously 
  216. known as expo.lcs.mit.edu.
  217.  
  218. The information contained herein has been gathered from a variety of sources. 
  219. In many cases attribution has been lost; if you would like to claim 
  220. responsibility for a particular item, please let me know. 
  221.  
  222. Conventions used below: telephone numbers tend to be Bell-system unless 
  223. otherwise noted; prices on items are not included; email addresses are those
  224. that work from the US.
  225.  
  226. X Window System is a trademark of the Massachusetts Institute of Technology. 
  227. Other trademarks are the property of their respective owners.
  228.  
  229. (Note: a script by George Ferguson (ferguson@cs.rochester.edu) to pretty-print
  230. this faq is available from ugle.unit.no:/pub/X11/contrib/xfaq2texinfo.)
  231.  
  232.  
  233. ----------------------------------------------------------------------
  234. Subject:   0)  TOPIC: BASIC INFORMATION SOURCES AND DEFINITIONS
  235. ----------------------------------------------------------------------
  236. Subject:   1)! What books and articles on X are good for beginners?
  237.  
  238.     Ken Lee of SynOptics (klee@synoptics.com) regularly posts to 
  239. comp.windows.x and ba.windows.x a bibliography containing cites of all known 
  240. reference books and how-to manuals and also cites of selected technical 
  241. articles on X and X programming; it is ftp-able as 
  242.     ftp.x.org:/contrib/Xbibliography and 
  243.     gatekeeper.dec.com:/pub/X11/contrib/Xbibliography
  244.  
  245. Here is an unordered set of the reference books and tutorials most useful for
  246. beginners; most appear on that list [comments are gathered from a variety of 
  247. places and are unattributable]:
  248.  
  249. Asente, Paul J., and Swick, Ralph R., "X Window System Toolkit, The Complete
  250. Programmer's Guide and Specification", Digital Press, 1990.  The bible on Xt. A
  251. treasury of information, excellent and invaluable.  Distributed by Digital 
  252. Press, ISBN 1-55558-051-3, order number EY-E757E-DP; and by Prentice-Hall, 
  253. ISBN 0-13-972191-6. Also available through DEC Direct at 1-800-DIGITAL. 
  254. [The examples are on ftp.x.org in contrib/ and on gatekeeper.dec.com
  255. (16.1.0.2) in pub/X11/contrib as asente-swick.examples.tar.Z.  They were also
  256. posted to comp.sources.x as xt-examples/part0[1-5].]
  257.  
  258. Jones, Oliver, Introduction to the X Window System, Prentice-Hall, 1988,
  259. 1989.  ISBN 0-13-499997-5. An excellent introduction to programming with
  260. Xlib.  Written with the programmer in mind, this book includes many practical
  261. tips that are not found anywhere else. This book is not as broad as the
  262. O'Reilly Xlib tutorial, but Jones is an experienced X programmer and this
  263. shows in the quality and depth of the material in the book.
  264.  
  265. Young, Doug. "The X Window System: Applications and Programming with Xt
  266. (Motif Version)," Prentice Hall, 1989 (ISBN 0-13-497074-8). The excellent
  267. tutorial "X Window System Programming and Applications with Xt," (ISBN
  268. 0-13-972167-3) updated for Motif. [Sources used to be on ftp.x.org; they are
  269. known to be also on ftp.funet.fi in /pub/X11/contrib/.]
  270.  
  271. Young, Doug and John Pew, "The X Window System: Programming and Applications
  272. with Xt, OPEN LOOK Edition" (ISBN 0-13-982992-X). The tutorial rewritten for
  273. OLIT, with new examples and drag/drop information. [Examples are on ftp.x.org
  274. in youg.olit.tar.Z and in you OpenWindows 3 distribution in
  275. $OPENWINHOME/share/src/olit/olitbook.]
  276.  
  277. Heller, Dan and Paula Ferguson. "Motif Programmers Manual".  The 6th volume
  278. in the O'Reilly series covers application programming with Motif 1.2 and
  279. earlier; it's full of good examples (ISBN 1-56592-016-3).  Volume 6B is a
  280. reference book on Motif and UIL (ISBN ISBN 1-56592-038-4).   [The examples
  281. are available on uunet in the nutshell archives.]
  282.  
  283. Scheifler, Robert, and James Gettys, with Jim Flowers and David Rosenthal, "X
  284. Window System: The Complete Reference to Xlib, X Protocol, ICCCM, XLFD, X
  285. Version 11, Release 5, Third Edition," Digital Press, 1992. "The Bible" in
  286. its latest revision, an enhanced version of X documentation by the authors of
  287. the Xlib documentation. This is the most complete published description of
  288. the X programming interface and X protocol. It is the primary reference work
  289. and is not introductory tutorial documentation; additional tutorial works
  290. will usually be needed by most new X programmers.  Digital Press order
  291. EY-J802E-DP, ISBN 0-13-971201-1.
  292.  
  293. Nye, Adrian, "Xlib Programming Manual, Volume 1" and "Xlib Reference Manual,
  294. Volume 2," O'Reilly and Associates. A superset of the X documentation;
  295. the first volume is a tutorial with broad coverage of Xlib, and the second
  296. contains reference pages for Xlib functions and many useful reference
  297. appendices.  Both cover X11R5 (and R4). ISBN 0-937175-26-9 (volume 1) and
  298. ISBN 0-937175-27-7 (volume 2).
  299.  
  300. Nye, Adrian, and Tim O'Reilly, "X Toolkit Programming Manual, Volume 4,"
  301. O'Reilly and Associates, 1989. The folks at O'Reilly give their comprehensive
  302. treatment to programming with the Xt Intrinsics; R5 versions are now
  303. available, as is a Motif 1.2 version (Volume 4M).
  304.  
  305. O'Reilly, Tim, ed.,  "X Toolkit Reference Manual, Volume 5," O'Reilly and
  306. Associates. A professional reference manual for the X11R4 and X11R5 Xt.
  307.  
  308. Mansfield, Niall. "The X Window System: A User's Guide," Addison-Wesley,
  309. 1989.  A tutorial introduction to using X, now upgraded for R4. ISBN
  310. 0-201-51341-2.
  311.  
  312. Quercia, Valerie and Tim O'Reilly. "X Window System User's Guide," O'Reilly
  313. and Associates. A tutorial introduction to using X. ISBN 0-937175-36-6.  Also
  314. available in R4 and Motif flavors.
  315.  
  316. Mui, Linda and Eric Pearce. "X Window System Administrator's Guide for X11 R4
  317. and R5" [ORA Volume 8]. Help for X users and administrators.  ISBN
  318. 0-937175-83-8.
  319.  
  320. Drafts of John Ousterhout's upcoming book on TCL/TK are on sprite.berkeley.edu
  321. (128.32.150.27) in /tcl. The final book will be published early 1994 by
  322. Addison-Wesley, ISBN #0-201-63337-X.
  323.  
  324. (Prentice-Hall ordering is 201-767-5937. O'Reilly ordering is 800-998-9938
  325. or 707-829-0515; ORA may also be contacted via email at order@ora.com or by
  326. logging into gopher.ora.com as gopher.)
  327.  
  328. In addition, check the X11R4 and X11R5 core distribution in doc/tutorials for
  329. some useful papers and tutorials, particularly the file answers.txt.  "Late
  330. Night's Top Ten X11 Questions" by Dave Lemke (lemke@ncd.com) and Stuart Marks
  331. (smarks@sun.com) answers other common questions and some of these here in
  332. more detail.
  333.  
  334. New R5 versions of the O'Reilly references are now available [8/92].  A
  335. single volume, "Programmer's Supplement for R5" by David Flanagan, provides
  336. an overview of new R5 features; it includes man pages for Xlib, Xt, and Xmu.
  337. [ISBN 0-937175-86-2]
  338.  
  339. ----------------------------------------------------------------------
  340. Subject:   2)  What courses on X and various X toolkits are available?
  341.  
  342.     AT&T offers training in Xlib and in the Xol set. Contact AT&T
  343. Corporate Education & Training for more info; 1-800-TRAINER in the USA.
  344.  
  345.     BIM Educational Services offers training in X administration and in
  346. programming with Xt/Motif and Open Windows; the courses are given near
  347. Brussels. Info: edu@sunbim.be, voice +32-(0)2-7595925, fax +32-(0)2-7599209.
  348.  
  349.     Bluestone Consulting, Inc. offers several multi-day, hands-on
  350. training courses in X, Xt, Motif, C, C++, and UIM/X.  Information is available 
  351. at 609-727-4600 or blustone!info@uunet.uu.net.
  352.  
  353.     Communica Software Consultants offers three-day hands-on courses in X
  354. designed for the X Window System developer and programmer. Contact Chris
  355. Clarkson, telephone 61 8 3732523, e-mail communica@communica.oz.au. [12/92]
  356.  
  357.     Cora Computer Technologies (516-485-7343) offers several courses.
  358.  
  359.     GHCT offers a one week lecture/lab course for programmers designed
  360. by Douglas Young based on his book "The X Window System: Programming and
  361. Applications with Xt, OSF/Motif Edition". Information: Brian Stell
  362. (415-966-8805 or ghct!brian@sgi.com).
  363.  
  364.     GHG offers a range of courses on X and Motif. Information:
  365. 713-488-8806 or training-info@ghg.hou.tx.us.
  366.  
  367.     Hands On Learning has live training and self-paced video workshops on
  368. topics such as using and/or programming X, Xlib, Xm, and Xt.  Information: 
  369. 617-272-0088, 800-248-9133.
  370.  
  371.     Hewlett-Packard (1-800-HPCLASS; or contact your local HP center)
  372. offers a 2-day "Introduction to X", a 5-day Xlib course, a 1-day Xt and Motif
  373. 1.1 seminar, and a 5-day Motif lab course.
  374.  
  375.     Integrated Computer Solutions, Inc., offers several multi-day,
  376. hands-on courses on X, Xt, and the Xaw and Motif widget sets, in particular.
  377. Information is available at 617-621-0060 and info@ics.com.
  378.  
  379.     Intelligent Visual Computing teaches several lab courses on-site for
  380. Motif and XView. IVC is at 1-800-776-2810 or +1 919-481-1353 or at
  381. info@ivc.com.
  382.  
  383.     Iris Computing Laboratories offers five-day Xlib and Xt courses.
  384. Info: +1-505-988-2670 or info@spectro.com.
  385.  
  386.     IXI Limited (+44 223 462 131) offers regular X training courses for
  387. both programmers and non-technical managers. See also: Unipalm, below.
  388.  
  389.     Learning Tree International offers a four-day course in X Window
  390. System applications development, including Xlib and some information on
  391. Motif.  For more info call 800-824-9155 (213-417-3484); 613-748-7741 in
  392. Canada. Courses are offered in major North American cities; also in London,
  393. Stockholm, Tokyo, and elsewhere.
  394.  
  395.     Lurnix offers several 3- to 5-day courses on using X and programming
  396. with Xlib and Motif. Information is available at 800-875-4478.
  397.  
  398.     Non Standard Logics (+33 (1) 43 36 77 50; requests@nsl.fr) offers
  399. courses on programming with Xlib, Motif, and creating Motif widgets.
  400.  
  401.     OSF Educational Services (617-621-8778) offers one-day seminars and
  402. one-week Motif lab courses.
  403.  
  404.     John A. Pew offers a 5-day course on OLIT, possibly based on his book
  405. on that subject; 408-224-5739.
  406.  
  407.     SCO (+44 923 816344, scol-info@sco.COM) offers training for its Open
  408. Desktop (Motif) environment in the UK and Europe.
  409.  
  410.     Software Pundits (617-270-0639) offers a range of courses.
  411.  
  412.     Technology Exchange (617-944-3700) offers a 4-day Xlib/Xt/Motif course.
  413.  
  414.     Alsys (formerly TeleSoft) is now offering a 1-day plus 3-day seminar
  415. on X and Motif.  Information: Bruce Sherman (619-457-2700, bds@telesoft.com).
  416.  
  417.     Unipalm XTech offers OSF's 5-day Motif course and a 1-day overview on
  418. X.  Information: Unipalm Training at +44 952  211797, xtech@unipalm.co.uk.
  419.  
  420.     The University of Edinburgh is developing a series of courses on X
  421. and related topics primarily for non-profit-making training in academia but
  422. also for commercial use. Information: Cliff Booth, Unipalm Ltd, phone +44 223
  423. 420002, fax +44 223 426868.
  424.  
  425.     Various other vendors are also beginning to offer X training, usually
  426. specific to a proprietary toolkit or to Xt and a proprietary widget set: DEC
  427. is offering Xlib courses; Sun offers an XView course.
  428.  
  429.     Various universities are offering short X courses or overviews: UCLA,
  430. Dartmouth, University of Lowell, University of Canberra (within Australia:
  431. 062-522422) ...
  432.     UC Berkeley Extension will have a one week X/Motif class for
  433. programmers in San Francisco starting on July 29.  The class will have a
  434. hands-on lab. For more information contact UCBX at 415 323 8141.
  435.  
  436.     Among the best places to find courses are at the various Unix
  437. conferences -- Uniforum, Usenix, Unix Expo, Xhibition, the X Technical
  438. Conference, the ACM tutorial weeks, &c.
  439.  
  440.     In addition, the X Consortium posts approximately quarterly a list of
  441. unendorsed speakers and consultants who can provide talks on a variety of X
  442. topics.
  443.  
  444. ----------------------------------------------------------------------
  445. Subject:   3)  What conferences on X are coming up?
  446.  
  447.     The XWorld Conference and Exhibition includes tutorials, panels,
  448. presentations and vendor exhibits. It is typically held in March in New York
  449. City.  Information: SIGS Publication Group at 212-274-9135.
  450.  
  451.     The Xhibition'94 trade show and conference, with tutorials, panels,
  452. presentations, and vendor exhibits, will be held at the San Jose Convention
  453. Center June 20-24. Information: +1 617 621 0060, xhibit@ics.com.
  454.  
  455.     A Tcl/Tk Workshop has been offered. Information: tcl93@cs.berkeley.edu.
  456.  
  457.     The European X User Group holds an annual conference which typically
  458. includes includes paper presentations and a vendor exhibit.  Information:
  459. kareno@exug.demon.co.uk, niall@uit.co.uk or p.whitehead@cc.ic.ac.uk, +44 (0)
  460. 223 426534, fax +44 (0) 223 420251.
  461.  
  462.     The Motif/COSE show is held in Washington to coincide with the
  463. FedUnix and the Federal Open Systems Conference.  Information:
  464. motif@fedunix.org or paller@fedunix.org, 301-229-1062, fax 301-229-1063.
  465.  
  466.     The X Technical Conference is typically held in January in Boston.
  467. Registration information is available from registration@x.org, fax +1
  468. 617-253-7002. Other information is on ftp.x.org in /pub/DOCS/XConsortium/.
  469.  
  470.     Other trade shows -- UnixExpo, Uniforum, Siggraph -- show an
  471. increasing presence of X, including tutorials and exhibits.
  472.  
  473. ----------------------------------------------------------------------
  474. Subject:   4)  What X-related public mailing lists are available?
  475.  
  476.     The xpert mailing list is the general, public mailing list on X
  477. maintained by the X Consortium. The mailings are gatewayed, so xpert is
  478. almost identical to the comp.windows.x Usenet newsgroup.
  479.  
  480.     ***     If you get comp.windows.x, you don't need to    *** 
  481.     ***     be added to the xpert mailing list.             ***
  482.  
  483.     Otherwise, you can join the list to receive X information
  484. electronically. It is best to find a local distribution; perhaps someone
  485. within your company is already receiving the mailing. As a last resort, send
  486. mail to xpert-request@x.org with a valid return electronic address.
  487.  
  488.     The xannounce mailing list carries major X announcements, such as new
  489. releases (including public patches from the Consortium), public reviews,
  490. adoption of standards by the X Consortium, and conference announcements.  It
  491. does NOT carry advertisements, source code, patches, or questions.  If you
  492. already receive the Usenet news group comp.windows.x.announce or the xpert
  493. mailing list, you don't need to be added to the xannounce mailing list.
  494. Otherwise, to subscribe, send a request to xannounce-request@x.org. Note:
  495. only redistribution addresses will be accepted for this list -- i.e. no
  496. personal addresses. If you wish to receive xannounce yourself, please contact
  497. your mail administrator to set up a local redistribution list and to put you
  498. on it.
  499.     comp.windows.x.apps is not gatewayed to a mailing list.
  500.  
  501.     In addition, the X Consortium sponsors these public lists:
  502.         bug-clx         CLX bug reports and discussions
  503.         x-ada           X and ada 
  504.         x11-3d          people interested in X and 3d graphics 
  505.         ximage          people interested in image processing and X 
  506.         xvideo          discussion of video extensions for X 
  507. To subscribe to one of these lists, assuming no-one in your
  508. organization already receives it, send mail to <list>-request@x.org
  509. with the Subject line including the name of the LIST in caps and the
  510. request "addition request".  
  511.  
  512.     A mailing list for topics related to OPEN LOOK is sponsored by Greg
  513. Pasquariello of Unify corporation; send to openlook-request@unify.com (or
  514. openlook-request%unify@uunet.uu.net) for information.
  515.     A mailing list for bugs in the publicly-available version of XView
  516. source, in particular, is sponsored by Sun; send for information to
  517. xviewbug-trackers-request@sun.com.
  518.     A mailing list for topics related to Motif is sponsored by Brian
  519. Dealy; send to motif-request@lobo.gsfc.nasa.gov for information.  (This group 
  520. is gatewayed to comp.windows.x.motif.)
  521.     A mailing list for topics related to the XPM pixmap-format is
  522. sponsored by Arnaud Le Hors of Group Bull; send to 
  523. xpm-talk-request@sa.inria.fr for information. [1/91]
  524.     A mailing list discussing InterViews can be subscribed to by sending
  525. to interviews-request@interviews.stanford.edu.  A mailing list 
  526. (amiga-x11@nic.funet.fi) for topics related to the port of X11 to the Amiga 
  527. can be subscribed by sending to mailserver@nic.funet.fi a
  528. message containing
  529.         Subject: Adding myself to AMIGA-X11 
  530.         SUBS AMIGA-X11 Your Real Name 
  531.     A mailing list discussing multi-threaded Xlib can be subscribed to at
  532. mt-xlib-request@xsoft.xerox.com.
  533.     A mailing list discussing the Andrew User Interface System (formerly
  534. Andrew Toolkit) is maintained by the Andrew Consortium.  To subscribe, write
  535. to info-andrew-request@andrew.cmu.edu and specify whether you want messages
  536. in Andrew format or ASCII.  The ASCII versions are copied to netnews group
  537. comp.soft-sys.andrew.
  538.     A mailing list for the Motif-C++ bindings is sponsored by Ronald van
  539. Loon; subscribe to motif++-request@motif.hacktic.nl.
  540.     A mailing list for SUIT users is available from
  541. suit-users-request@uvacs.cs.virginia.edu.
  542.     A mailing list discussing the UIM/X builder can be subscribed to by
  543. sending a Subject line of "subscribe" to uimx-request@ivev.bau.tu-bs.de.
  544.     A mailing list discussing the TeleUSE builder can be subscribed to by
  545. sending a request to teleusers-request@alsys.com.
  546.     A mailing list discussing the Windowing Korn Shell may be subscribed to
  547. at wksh-request@usl.com.
  548.     A mailing list for MetaCard users is available by sending to
  549. listserv@grot.starconn.com a message containing
  550.         subscribe metacard-list firstname lastname 
  551.         quit
  552.  
  553. ----------------------------------------------------------------------
  554. Subject:   5)  How can I meet other X developers? (What X user groups are there?)
  555.  
  556.     O'Reilly and Associates sponsors a mailing list for the use of X user
  557. group organizers; subscribe by sending to listserv@ora.com the message
  558. "subscribe xgroups your@internet.address".
  559.  
  560.     Local area X user's groups are listed in Issue 4 of O'Reilly's X
  561. Resource journal; a list may also be available from xug@ics.com.
  562.  
  563.     The French X User Group is called AFUX and is based in Sophia
  564. Antipolis by CERICS. Information can be obtained from Miss Vasseur or Miss 
  565. Forest; BP 148; 157, rue Albert Einstein; 06561 Valbonne Cedex; Phone:
  566. +33 93 95 45 00 / 45 01; Fax: +33 93 95 48 57.  [10/90]
  567.  
  568.     The European X User Group was formed in 1989 to represent X users in
  569. Europe.  It holds technical conferences at regular intervals. The EXUG also
  570. publishes a regular newsletter which is distributed free of charge to
  571. members.  The EXUG also runs a email mailing list for members which is
  572. frequently used to address issues of European interest in X. The EXUG can be
  573. contacted at P.Whitehead@cc.ic.ac.uk, +44 (071) 225 8754, fax +44 (071) 823
  574. 9497.
  575.  
  576. ----------------------------------------------------------------------
  577. Subject:   6)  What related FAQs are available?
  578.  
  579.     Liam R. E. Quin (lee@sq.sq.com) posts a FAQ on Open Look to
  580. comp.windows.open-look.
  581.     Brian Dealy posts a FAQ on Motif to comp.windows.x.motif.  Peter Ware
  582. (ware@cis.ohio-state.edu) posts a FAQ for comp.windows.x.intrinsics; it is on 
  583. ftp.x.org in contrib/FAQ-Xt.
  584.     Art Mulder (art@cs.ualberta.ca) posts to comp.windows.x a FAQ on
  585. maximizing the performance of X.
  586.     Steve Kotsopoulos (steve@ecf.toronto.edu) posts to comp.windows.x a
  587. FAQ about using X on Intel-based Unix systems.  
  588.     Justin Kibell (jck@citri.edu.au) posts to comp.windows.x a FAQ on 
  589. games for X.
  590.     Wade Guthrie (wade@nb.rockwell.com) posts to comp.windows.misc a FAQ
  591. which includes information on platform-independent GUI (PIGUI) development
  592. kits.
  593.     Pete Phillips (pete@smtl.demon.co.uk) posts to comp.sources.wanted a 
  594. FAQ on project-management programs. 
  595.     Wade Guthrie (wade@nb.rockwell.com) posts to comp.windows.misc a FAQ
  596. on on platform-independent GUI toolkits (PIGUI).
  597.     The FAQ in alt.binaries.pictures contains information on viewing 
  598. images with X and on massaging image formats.  
  599.     The FAQ in comp.mail.mh (gatewayed to MH-users@ics.uci.edu) includes a 
  600. section on xmh.  
  601.     The FAQ in comp.lang.lisp contains information on several interface 
  602. tools and toolkits.
  603.     The FAQ for the Andrew User Interface System is available for ftp
  604. from emsworth.andrew.cmu.edu (128.2.45.40).
  605.  
  606. ----------------------------------------------------------------------
  607. Subject:   7)  How do I ask a net-question so as to maximize helpful responses?
  608.  
  609.     When asking for help on the net or X mailing lists, be sure to include 
  610. all information about your setup and what you are doing.  The more
  611. specific you are, the more likely someone will spot an error in what
  612. you are doing.  Without all the details, people who want to help you
  613. often have to guess -- if they are able to respond at all.
  614.  
  615.     Always mention what version of X you are using and where you got it
  616. from. If your server came from a different source as the rest of your X
  617. system, give details of that, too.  Give the machine type, operating system,
  618. and O/S version for both the client and server machine.  It may also be
  619. appropriate to mention the window manager, compiler, and display hardware
  620. type you are using.
  621.  
  622.     Then tell exactly what you are doing, exactly what happens, and what
  623. you expected/wanted to happen.  If it is a command that fails, include the
  624. exact transcript of your session in the message.  If a program you wrote
  625. doesn't work the way you expect, include as little of the source necessary
  626. (just a small test case, please!) for readers to reproduce the problem.
  627.  
  628. ----------------------------------------------------------------------
  629. Subject:   8)  What publications discussing X are available?
  630.  
  631.     The trade magazines (Unix World, Unix Review, etc.) are publishing
  632. more articles on X.  Two X-specific publications include:
  633.  
  634.     - O'Reilly and Associates publishes "The X Resource: A Practical
  635. Journal of the X Window System" (103 Morris St. #A, Sebastapol, CA 95472).
  636. Editorial information: Adrian Nye (adrian@ora.com), Paula Ferguson 
  637. (paula@ora.com).
  638.  
  639.     - The X Journal is started bi-monthly publication September 1991 on a
  640. variety of X topics. Subscription information: The X Journal, Subscriber
  641. Services, Dept XXX, P.O. Box 3000, Denville, NJ 07834, USA. Editorial
  642. information: editors%topgun@uunet.uu.net, editors@unx.com.
  643.  
  644. ----------------------------------------------------------------------
  645. Subject:   9)  What are these common abbreviations/acronyms?
  646.  
  647.     Xt: The X Toolkit Intrinsics is a library layered on Xlib which
  648. provides the functionality from which the widget sets are built. An
  649. "Xt-based" program is an application which uses one of those widget sets and
  650. which uses Intrinsics mechanisms to manipulate the widgets.
  651.     Xmu: The Xmu library is a collection of Miscellaneous Utility
  652. functions useful in building various applications and widgets.  
  653.     Xaw: The Athena Widget Set is the MIT-implemented sample widget set
  654. distributed with X11 source.
  655.     Xm: The OSF/Motif widget set from the Open Software Foundation;
  656. binary kits are available from many hardware vendors.  
  657.     Xhp (Xw): The Hewlett-Packard Widget Set was originally based on R2++, 
  658. but several sets of patches exist which bring it up to R3, as it is distributed
  659. on the X11R4 tapes. Supplemental patches are available to use it with R4/R5.
  660.     CLX: The Common Lisp X Interface is a Common Lisp equivalent to
  661. Xlib.  
  662.     XDMCP: The X Display Manager Protocol provides a uniform mechanism for 
  663. a display such as an X terminal to request login service from a remote host.
  664.     XLFD: The X Logical Font Description Conventions describes a standard
  665. logical font description and conventions to be used by clients so that they
  666. can query and access those resources.
  667.     RTFM: Common expert-speak meaning "please locate and consult the
  668. relevant documentation -- Read the Forgotten Manual".
  669.     UTSL: A common expression meaning "take advantage of the fact that you 
  670. aren't limited by a binary license -- Use The Source, Luke".
  671.     API: Application-Programmer Interface. The function calls, etc., in a
  672. programming library.
  673.     BDF: Bitmap Distribution Format; a human-readable format for
  674. uncompiled X fonts.  
  675.     GUI: graphical user interface.  
  676.     UIL: the User Interface Language, part of OSF/Motif which lets 
  677. programmers specify a widget hierarchy in a simple text "outline" form
  678.     WCL: the Widget Creation Language, a package which extends the
  679. understanding of the Xt resource format such that a widget hierarchy and
  680. actions on the widgets can be specified through the resources file
  681.     GIL: the file format put out by Sun's OpenWindows Developers Guide 3.0
  682.     UIMS: User Interface Management System
  683.  
  684. ----------------------------------------------------------------------
  685. Subject:  10)  What is the ICCCM? (How do I write X-friendly applications?)
  686.  
  687.     The Inter-Client Communication Conventions Manual is one of the
  688. official X Consortium standards documents that define the X environment. It
  689. describes the conventions that clients must observe to coexist peacefully
  690. with other clients sharing the same server.  If you are writing X clients,
  691. you need to read and understand the ICCCM,  in particular the sections
  692. discussing the selection mechanism and the interaction between your client
  693. and the window manager.  Get it either:
  694.  
  695.     - as part of the R4 distribution - in the later editions of the
  696. Scheifler/Gettys "X Window System" book - as an appendix in the new version
  697. of O'Reilly's Volume 0, "X Protocol Reference Manual." A version in old
  698. copies of their Volume 1 is obsolete.  The version in the Digital Press book
  699. is much more readable, thanks to the efforts of Digital Press's editors to
  700. improve the English and the presentation.
  701.  
  702. [from David Rosenthal, 10/90]
  703.  
  704.     - the ICCCM was updated for R5; updates are published in O'Reilly's
  705. "Programmer's Supplement for Release 5". The complete document is on the R5
  706. tapes.
  707.  
  708.     - a revision of the ICCCM (version 2.0) is now [2/94] in Consortium
  709. public review. (Public review is the final step in the X Consortium
  710. standardization process.)  This review draft is available via anonymous FTP
  711. in ftp.x.org:/pub/DOCS/ICCCM.
  712.  
  713.     Alternate definition: the ICCCM is generally the M in "RTFM" and is
  714. the most-important of the least-read X documents.
  715.  
  716. ----------------------------------------------------------------------
  717. Subject:  11)  What is the X Consortium, and how do I join?
  718.  
  719.     The X Consortium was formed in January of 1988 to further the
  720. development of the X Window System and has as its major goal the promotion of
  721. cooperation within the computer industry in the creation of standard software
  722. interfaces at all layers in the X Window System environment. MIT for many
  723. years provided the vendor-neutral architectural and administrative leadership
  724. required to make the organization work. The X Consortium is now an independent
  725. consortium.
  726.  
  727.     Most of the Consortium's activities take place via electronic mail,
  728. with meetings when required.  As designs and specifications take shape,
  729. interest groups are formed from experts in the participating organizations.
  730. Typically a small multi-organization architecture team leads the design, with
  731. others acting as close observers and reviewers.  Once a complete
  732. specification is produced, it may be submitted for formal technical review by
  733. the Consortium as a proposed standard.  The standards process typically
  734. includes public review (outside the Consortium) and a demonstration of proof
  735. of concept.
  736.  
  737.     Your involvement in the public review process or as a member of the
  738. Consortium is welcomed. Membership in the Consortium open to any
  739. organization; there are several membership categories.  Write to Bob
  740. Scheifler, President, X Consortium, One Memorial Drive, Cambridge, MA
  741. 02142-1301, or send a message to membership@x.org, or look in
  742. /pub/DOCS/XConsortium on ftp.x.org.
  743.  
  744. [2/90; 9/93; 12/93]
  745.  
  746. ----------------------------------------------------------------------
  747. Subject:  12)  Just what are OPEN LOOK and Motif?
  748.  
  749.     OPEN LOOK and Motif are two graphical user interfaces (GUIs). OPEN
  750. LOOK was developed by Sun with help from AT&T and many industry reviewers;
  751. Motif was developed by the Open Software Foundation (OSF) with input from many
  752. OSF members.
  753.  
  754.     OPEN LOOK is primarily a user-interface specification and style-guide;
  755. there are several toolkits which can be used to produce OPEN LOOK
  756. applications.  Motif includes an API specification; the only sanctioned Motif
  757. toolkit is the one from OSF. However, there are other toolkits which can be
  758. used to produce programs which look and behave like OSF/Motif; one of these,
  759. ParcPlace's (formerly Solbourne's) OI, is a "virtual toolkit" which provides
  760. objects in the style of OPEN LOOK and Motif, at the user's choice.
  761.  
  762.     OPEN LOOK GUI is also the name of a product from AT&T, comprising
  763. their OPEN LOOK Intrinsics Toolkit and a variety of applications.
  764.  
  765. [Thanks to Ian Darwin, ian@sq.com, 5/91]
  766.  
  767.     With the recent COSE announcement it appears that Sun will be phasing
  768. out support for OPEN LOOK in favor of Motif.
  769.  
  770. ----------------------------------------------------------------------
  771. Subject:  13)  What is "low-bandwidth X" (LBX)? XRemote? PPP? SLIP? CSLIP?
  772.  
  773. The one-line summary of LBX is:
  774.     LBX  =  "XRemote"  +  reply/event/error compaction  +  caching
  775.  
  776. There are several options for using X over serial lines:
  777.  
  778. SLIP - Serial Line IP; this is both a mechanism and a protocol for sending IP
  779. packets over point-to-point serial links. It has been around for several
  780. years, and implementations are available for many of the major TCP/IP
  781. implementations.  Most X Terminal vendors supply this as a checkoff item,
  782. although nobody really ever uses it since it is horribly slow.  The TCP/IP
  783. headers add 40 bytes per packet and the TCP/IP encoding of the X protocol is
  784. rather verbose (rightfully so; it is optimized for packing and unpacking over
  785. high-speed links).
  786.  
  787. CSLIP - Compressed header SLIP; this is a variant of SLIP that compresses the
  788. 40 bytes of TCP/IP headers down to about 5 or 6 bytes.  It still doesn't do
  789. anything about reencoding the X protocol.  Modems that do compression can
  790. help, but they increase packet latency (it takes time to dribble the
  791. uncompressed data through typical serial interfaces, plus the compression
  792. assembly time).
  793.  
  794. PPP - Point-to-Point Protocol; this is an emerging standard for point-to-point
  795. links over serial lines that has a more complete set of option negotiation
  796. than SLIP.  A growing number of people see the combination of PPP for the
  797. serial line management and CSLIP for the header compression as becoming common
  798. for running normal TCP/IP protocols over serial lines.  Running raw X over the
  799. wire still needs compression somewhere to make it usable.
  800.  
  801. XRemote - this is the name of both a protocol and set of products originally
  802. developed by NCD for squeezing the X protocol over serial lines.  In addition
  803. to using a low level transport mechanism similar to PPP/CSLIP, XRemote removes
  804. redundancies in the X protocol by sending deltas against previous packets and
  805. using LZW to compress the entire data stream.  This work is done by either a
  806. pseudo-X server or "proxy" running on the host or in a terminal server.  There
  807. are several advantages to doing compression outside the modem:
  808.    (1)  You don't *have* to have compressing modems in there if you wouldn't
  809.     otherwise be using them (e.g. if you were going to be directly
  810.     connected), and 
  811.    (2)  It reduces the I/O overhead by cutting down on the number of bytes 
  812.     that have to cross the serial interface, and 
  813.    (3)  In addition to the effects of #2, it reduces the latency in delivering
  814.     packets by not requiring the modem to buffer up the data waiting for
  815.     blocks to compress.
  816.  
  817. LBX - Low Bandwidth X; this is an X Consortium project that is working on a
  818. standard for this area.  It is being chaired by NCD and Xerox and is using
  819. NCD's XRemote protocol as a stepping stone in developing the new protocol.
  820. LBX will go beyond XRemote by adding proxy caching of commonly-used
  821. information (e.g. connection setup data, large window properties, font
  822. metrics, keymaps, etc.) and a more efficient encoding of the X protocol. The
  823. hope is to have a Standard ready for public review in the first half of next
  824. year and a sample implementation available in R6.
  825.  
  826. Additional technical information about how XRemote works and a few notes on
  827. how LBX might be different are available via anonymous ftp from ftp.x.org in
  828. contrib/ in the following files:
  829.     XRemote-slides.ps               slides describing XRemote
  830.     XRemote-LBX-diffs.ps            more slides describing some of LBX
  831.  
  832. [information provided by Jim Fulton, jim@ncd.com; 7/92]
  833.  
  834.     There is also a set of slides on ftp.x.org from Jim Fulton's talk at
  835. the 7th X Technical Conference.
  836.  
  837.     LBX should be available in draft form with R6.
  838.  
  839. ----------------------------------------------------------------------
  840. Subject:  14)  TOPIC: USING X IN DAY-TO-DAY LIFE
  841. ----------------------------------------------------------------------
  842. Subject:  15)! What are all these different window managers?
  843.  
  844.     The window manager in X is just another client -- it is not part of
  845. the X window system, although it enjoys special privileges -- and so there is
  846. no single window manager; instead, there are many, which support different
  847. ways for the user to interact with windows and different styles of window
  848. layout, decoration, and keyboard and colormap focus. In approximate
  849. chronological order (generally, the more recent ones conformant more with the
  850. ICCCM):
  851.  
  852.     wm: this simple title-bar window manager was phased out in R2 or R3
  853.     uwm: the Universal Window Manager is still popular for its speed,
  854. although it is very outdated. Moved to contrib/ on the R4 tape.
  855.     twm (old): Tom's Window Manager was among the first non-MIT window
  856. managers and offered the user a great deal of customization options in a
  857. re-parenting window manager.
  858.     awm: the Ardent Window Manager was for a while a hotbed for hackers
  859. and offered some features (dynamic menus) not found on more current window
  860. managers
  861.     rtl: Siemen's window manager tiles windows so that they don't overlap
  862. and resizes the window with the focus to its preferred size.
  863.     dxwm: Digital's dxwm is part of the DECwindows offering 
  864.     hpwm: HP's window manager offers a 3D look; it is a precursor of mwm 
  865.     mwm: the Motif window manager is part of the OSF/Motif toolkit 
  866.     tekwm: Tektronix's window manager offering 
  867.     olwm (Sun): olwm implements the OPEN LOOK GUI and some of the Style 
  868. Guide functionality 
  869.     olwm (AT&T): ditto 
  870.     gwm: Bull's Generic Window Manager emulates others with a built-in 
  871. Lisp interpreter. Version 1.7h (10/91) is on the R5 contrib tape; 1.7o is on 
  872. avahi.inria.fr and ftp.x.org. [9/93]
  873.     m_swm: the Sigma window manager is on the R4 tape 
  874.     pswm: Sun's PostScript-based pswm is part of the OpenWindows release 
  875.     swm: Solbourne's swm is based on the OI toolkit and offers multiple GUI
  876. support and also a panning virtual window; configuration information comes from
  877. the resources file. Sources are on ftp.x.org in contrib/swm.tar.Z; they require
  878. OI binaries.
  879.     twm (new): the new Tab Window Manager from the R4 tape is a reworked
  880. twm and is the basis for several derivatives, including the one on the R5 tape
  881.     vtwm: vtwm offers some of the virtual-desktop features of swm, with a
  882. single-root window implementation.  A new version, vtwm-5.3, is based on the
  883. R5 twm and is available from ftp.x.org. [1/94]
  884.     tvtwm: Tom's Virtual Tab Window Manager is also based on the new twm
  885. and provides a virtual desktop modeled on the virtual-root window of swm. It
  886. is available on ftp.x.org and mirroring archive servers.
  887.     olvwm: the vtwm-style virtual-desktop added to Sun's olwm. It is
  888. available on archive servers; version 4.1 [2/94] is on ftp.x.org.
  889.     mvwm: the vtwm-style virtual-desktop added to OSF's mwm. A beta version
  890. is floating around (most recently from suresh@unipalm.co.uk) but requires a 
  891. source license to OSF/Motif 1.1.3 [3/92].
  892.     NCDwm: the window manager local to NCD terminals offers an mwm look
  893.     XDSwm: the window manager local to Visual Technology's terminals is 
  894. simple but full-featured.
  895.     ctwm: Claude Lecommandeur's (lecom@sic.epfl.ch) modification of the R5
  896. twm offers 32 virtual screens in the fashion of HP vuewm and also offers the 
  897. window overview used in vtwm and tvtwm. Version 3.1 [2/94] source is on 
  898. ftp.x.org.  
  899.     vuewm: HP's MWM-based window manager offers configurable workspaces.
  900. SAIC offers a version of this VUE environment.
  901.     4Dwm: SGI's enhanced MWM 
  902.     piewm: this version of tvtwm offers pie menus
  903.     pmwm: IXI's Panorama version of MWM offers olvwm-like features. 
  904. Info: +44 223 236 555, +1 408 427 7700; mmoore@x.co.uk or michaela@x.co.uk or 
  905. laurie@ixi.com.
  906.     fvwm: This virtual window manager has been rewritten from scratch and
  907. is very light on system resources (between half and two-thirds the memory usage
  908. of twm, on which it was based). fvwm offers most of the features others 
  909. provide, plus additional features. Source is available from sunsite.unc.edu in
  910. /pub/Linux/X11/window-managers/fvwm-1.20r-source.tar.z
  911.  
  912. Also of possible use is vr, by Richard Mauri (rmauri@netcom.com), on
  913. ftp.x.org and ftp.informatik.tu-muenchen.de
  914. (pub/comp/X11/contrib/clients/vr/vr-1.01.tar.Z); Vr is a workspace manager
  915. intended to be window-manager-independent.
  916.  
  917. ----------------------------------------------------------------------
  918. Subject:  16)  Why does my X session exit when I kill my window manager (sic)?
  919.  
  920.     It needn't.  What is probably happening is that you are running your
  921. window manager as the last job in your .xsession or .xinitrc file; your X
  922. session runs only as long as the last job is running, and so killing your
  923. window manager is equivalent to logging out. Instead, run the window manager
  924. in the background, and as the last job instead invoke something safe like:
  925.         exec xterm -name Login -rv -iconic
  926. or any special client of your devising which exits on some user action.  Your
  927. X session will continue until you explicitly logout of this window, whether or
  928. not you kill or restart your window manager.
  929.     Alternatively, there is a chance that you are using OpenLook, which by
  930. default kills all clients on logging out. Change your Exit menu choice from
  931. EXIT to WMEXIT to correct this behavior.
  932.  
  933. ----------------------------------------------------------------------
  934. Subject:  17)  Can I save the state of my X session, like toolplaces does?
  935.  
  936.     Although no known window manager directly supports such a feature
  937. (olvwm and swm may come close) -- which may be equivalent to writing out a
  938. .xinitrc or .xsession file naming the geometry and WM_COMMAND of each
  939. application  -- there is a contributed application which does much of what
  940. you are looking for, although it is not as complete as the SunView program
  941. toolplaces.  Look for the application "xplaces" on an archive-server near
  942. you.  There are several versions of this program floating around; look for a
  943. recent vintage.  [10/90]
  944.     Some new pseudo session-managers such as HP's vuewm provide for the
  945. saving of sessions including information on the geometry of currently-running
  946. applications and the resource database.  [Bjxrn Stabell
  947. (bjoerns@staff.cs.uit.no); 3/93.]
  948.  
  949. ----------------------------------------------------------------------
  950. Subject:  18)  How do I use another window manager with DEC's session manager?
  951.  
  952.     DEC's session manager will start dxwm up by default. To override this,
  953.     add to your .Xdefaults file something like this line, naming the full
  954. pathname:
  955.     sm.windowManagerName:   /wherever/usr/bin/X11/your_favorite_wm
  956.  
  957. ----------------------------------------------------------------------
  958. Subject:  19)! How do I change the keyboard auto-repeat rate?
  959.  
  960.     You can turn auto-repeat on or off by using "xset r on|off". 
  961.  
  962.     The base X11 protocol, doesn't provide for varying the auto-repeat
  963. rate, which is a capability not supported by all systems.
  964.     Some pre-R6 servers may provide command-line flags to set the rate at
  965. start-up time. If you have control over server start-up (see the man pages
  966. for xinit and xdm), you can invoke the server with the chosen settings; for
  967. example, you can start the R5 Xsun sample server with the options "-ar1 350
  968. -ar2 30" to reduce the sensitivity of the keyboard.
  969.  
  970.     The R6 X Keyboard Extension provides a vendor-independent way to
  971. control repeat delay and rate.
  972.  
  973. ----------------------------------------------------------------------
  974. Subject:  20)  How do I remap the keys on my keyboard to produce a string?
  975.  
  976.     There is no method of arranging for a particular string to be produced
  977. when you press a particular key. The xmodmap client, which is useful for
  978. moving your CTRL and ESC keys to useful places, just rearranges keys and does
  979. not do "macro expansion."
  980.     Some (few) clients, including xterm and several X-based editors,
  981. accept a translation resource such as:
  982.     xterm*VT100.Translations: #override \
  983.         <Key>F1: string("setenv DISPLAY unix:0")
  984. which permits the shorthand F1 to be pressed to reset the display locally
  985. within an xterm; it takes effect for new xterm clients. To include control
  986. characters in the string, use \nnn, where nnn is the octal encoding of the
  987. control character you want to include.
  988.     Window managers, which could provide this facility, do not yet; nor
  989. has a special "remapper" client been made available.
  990.  
  991. ----------------------------------------------------------------------
  992. Subject:  21)  How do I make a screendump or print my application (including menus)?
  993.  
  994.     The xwd client in the X11 distributions can be used to select a window
  995. or the background. It produces an XWD-format file of the image of that
  996. window.  The file can be post-processed into something useful or printed with
  997. the xpr client and your local printing mechanism. To print a screendump
  998. including a menu or other object which has grabbed the pointer, you can use
  999. this command:
  1000.         csh% sleep 10; xwd -root > output.xwd &
  1001. and then spend 10 seconds or so setting up your screen; the entire current
  1002. display will be saved into the file output.xwd. Note that xwd also has an
  1003. undocumented (before R5) -id flag for specifying the window id on the
  1004. command-line. [There are also unofficial patches on ftp.x.org to xwd for
  1005. specifying the delay and the portion of the screen to capture.]
  1006.  
  1007.     Two publicly-available programs which allow interactive definition of
  1008. arbitrary portions of the display and built-in delays are asnap and xgrabsc.
  1009. There are several versions of xgrabsc; version 2.3, available on ftp.x.org
  1010. [9/93] is the most recent. xgrab, part of the package, is an interactive
  1011. front-end to xgrabsc.
  1012.     xsnap includes some asnap features and supersedes it; it also renders
  1013. XPM output [version unknown]. It is available on ftp.x.org or avahi.inria.fr;
  1014. see xsnap-pl2.tar.Z.
  1015.     A screen-dump and merge/edit program combining features of xwd and xpr
  1016. is available from vernam.cs.uwm.edu as xdump1.0.tar.Z.  Information:
  1017. soft-eng@cs.uwm.edu.
  1018.     xprint, by Alberto Accomazzi (alberto@cfa.harvard.edu) is available
  1019. from cfa0.harvard.edu (128.103.40.1) as /pub/wipl/xprint.export-2.1.tar.Z.
  1020. The package allows users to create encapsulated color PostScript files which
  1021. will print on any PostScript Level-1 compliant printer (black and white or
  1022. color).
  1023.  
  1024.     To post-process the xwd output of some of these tools, you can use
  1025. xpr, which is part of the X11 distribution. Also on several archives are
  1026. xwd2ps and XtoPS, which produce Encapsulated PostScript with trimmings
  1027. suitable for use in presentations (see ftp.x.org:contrib/xwd2ps.tar.Z and
  1028. contrib/ImageMagick2.3.4.2.tar.Z). Also useful is the PBMPLUS/Netpbm package 
  1029. on many archive servers; and the Xim package contains Level 2 color PostScript 
  1030. output.
  1031.  
  1032.     The XV program can grab a portion of the X display, manipulate it, and
  1033. save it in one of the available formats. ImageMagick has similar
  1034. capabilities.
  1035.  
  1036.     Also:
  1037.  
  1038.     Bristol Technology (info@bristol.com, 203-438-6969) offers Xprinter
  1039. 2.0, an Xlib API for PostScript and PCL printers; a demo is on ftp.uu.net in
  1040. vendor/Bristol/Xprinter.
  1041.  
  1042.     ColorSoft 9619-459-8500) offers OPENprint package includes a screen-
  1043. capture facility, image-processing, and support for PostScript and
  1044. non-PostScript printers.
  1045.  
  1046.     Some vendors' implementations of X (e.g. DECWindows and OpenWindows)
  1047. include session managers or other desktop programs which include "print
  1048. portion of screen" or "take a snapshot" options. Some platforms also have
  1049. tools which can be used to grab the frame-buffer directly; the Sun systems,
  1050. for example, have a 'screendump' program which produces a Sun raster file.
  1051. Some X terminals have local screen-dump utilities to write PostScript to a
  1052. local serial printer.
  1053.  
  1054.     Some vendors' implementations of lpr (e.g. Sony) include direct
  1055. support for printing xwd files, but you'll typically need some other package
  1056. to massage the output into a useful format which you can get to the printer.
  1057.  
  1058. ----------------------------------------------------------------------
  1059. Subject:  22)  How do I make a color PostScript screendump of the X display?
  1060.  
  1061.     If you need color PostScript in particular, you can 
  1062.     - grab the screen-image using a program which can produce color 
  1063. PostScript, such as xgrabsc, xprint, and xv
  1064.     - grab the screen-image using xwd and post-process xwd into color PS.
  1065.     You can do this using xwd2ps or the XtoPS program from the ImageMagick
  1066. distribution. The PBMPLUS/Netpbm package is also good for this, as is the Xim
  1067. package.
  1068.  
  1069. ----------------------------------------------------------------------
  1070. Subject:  23)  How do I make a screendump including the X cursor?
  1071.  
  1072.     This can't be done unless the X server has been extended. Consider
  1073. instead a system-dependent mechanism for, e.g.,  capturing the frame-buffer.
  1074.  
  1075. ----------------------------------------------------------------------
  1076. Subject:  24)  How do I convert or view Mac/TIFF/GIF/Sun/PICT/img/FAX images in X?
  1077.  
  1078.     The likeliest program is an incarnation of Jef Poskanzer's useful++
  1079. Portable Bitmap Toolkit, which includes a number of programs for converting
  1080. among various image formats. It includes support for many types of bitmaps,
  1081. gray-scale images, and full-color images. PBMPLUS has been updated recently;
  1082. the most recent version [12/91] is on ftp.x.org in
  1083. contrib/pbmplus10dec91.tar.Z.
  1084.     
  1085.     Netpbm is based on the PBMPLUS 10dec91 release, with many additions
  1086. and improvements. It is intended to be portable to many platforms while 
  1087. allowing for conversion of images between a variety of formats. The latest
  1088. sources are on several sites, including wuarchive.wustl.edu (128.252.135.4)
  1089. and peipa.essex.ac.uk (155.245.115.161). Contact oliver@fysik4.kth.se to be
  1090. added to the netpbm mailing list.
  1091.  
  1092.     Another tool is San Diego Supercomputing Center's IMtools ('imconv' in
  1093. particular), which packages the functionality of PBM into a single binary.
  1094. It's available anonymous ftp from sdsc.edu (132.249.20.22).
  1095.  
  1096.     Useful for viewing and converting some image-formats is Jim Frost's
  1097. xloadimage; the most recent [11/93] is on ftp.x.org in
  1098. contrib/xloadimage.4.1.tar.Z.  Graeme Gill's updates to an earlier version of
  1099. xloadimage are also on ftp.x.org; see xli.README and xli.tar.Z.uu; version
  1100. 1.15 was released 7/93.
  1101.  
  1102.     xv (X Image Viewer), written by bradley@cis.upenn.edu (John Bradley),
  1103. can read and display pictures in Sun Raster, PGM, PBM, PPM, X11 bitmap, TIFF,
  1104. GIF and JPEG. It can manipulate on the images: adjust, color, intensity,
  1105. contrast, aspect ratio, crop). It can save images in all of the aforementioned
  1106. formats plus PostScript. It can grab a portion of the X display, manipulate on
  1107. it, and save it in one of the available formats. The program was updated 5/92;
  1108. see the file contrib/xv-2.21.tar.Z on ftp.x.org.  Version 3.00 [5/93] is
  1109. distributed as shareware.
  1110.  
  1111.     The Fuzzy Pixmap Manipulation, by Michael Mauldin
  1112. (mlm@nl.cs.cmu.edu).  Conversion and manipulation package, similar to
  1113. PBMPLUS.  Version 1.0 available via FTP as
  1114. nl.cs.cmu.edu:/usr/mlm/ftp/fbm.tar.Z, uunet.uu.net:pub/fbm.tar.Z, and
  1115. ucsd.edu:graphics/fbm.tar.Z.
  1116.  
  1117.     The Img Software Set, by Paul Raveling <raveling@venera.isi.edu>,
  1118. reads and writes its own image format, displays on an X11 screen, and does
  1119. some image manipulations.  Version 1.3 is available via FTP on ftp.x.org as
  1120. contrib/img_1.3.tar.Z, along with large collection of color images.
  1121.  
  1122.     The Utah RLE Toolkit is a conversion and manipulation package similar
  1123. to PBMPLUS.  Available via FTP as cs.utah.edu:pub/urt-*,
  1124. weedeater.math.yale.edu:pub/urt-*, and freebie.engin.umich.edu:pub/urt-*.
  1125.  
  1126.     Xim, The X Image Manipulator, by Philip Thompson, does essential
  1127. interactive displaying, editing, filtering, and converting of images. There is
  1128. a version in the X11R4 contrib area; but a more recent version (using R4 and
  1129. Motif 1.1) is available from gis.mit.edu (18.80.1.118). Xim reads/writes gif,
  1130. xwd, xbm, tiff, rle, xim, (writes level 2 eps) and other formats and also has
  1131. a library and command-line utilities for building your own applications.
  1132.  
  1133.     ImageMagick by cristy@dupont.com is an X11 package for display and
  1134. interactive manipulation of images.  Includes tools for image conversion,
  1135. annotation, compositing, animation, and creating montages.  ImageMagick can
  1136. read and write many of the more popular image formats (JPEG, TIFF, PNM,
  1137. Postscript, ...).  Available via FTP from ftp.x.org as
  1138. contrib/ImageMagick2.3.6.tar.Z. [1/94]
  1139.  
  1140.     xtiff is a tool for viewing a TIFF file in an X window.  It was
  1141. written to handle as many different kinds of TIFF files as possible while
  1142. remaining simple, portable and efficient.  xtiff illustrates some common
  1143. problems with building pixmaps and using different visual classes.  It is
  1144. distributed as part of Sam Leffler's libtiff package and it is also available
  1145. on ftp.x.org and comp.sources.x.  [dbs@decwrl.dec.com,10/90] xtiff 2.0 was
  1146. announced in 4/91; it includes Xlib and Xt versions.
  1147.  
  1148.     A version of Lee Iverson's (leei@McRCIM.McGill.EDU) image-viewing tool
  1149. is available as contrib/vimage-0.9.3.tar.Z on ftp.x.org. The package also
  1150. includes an ImageViewPort widget and a FileDialog widget.  [12/91;5/92]
  1151.  
  1152.     The Andrew User Interface System (version 5.2 and later) provides an
  1153. image inset which can view many image formats.  Like all Andrew insets, an
  1154. image can be incorporated in a a document or sent in email via the MIME
  1155. standard. The following formats can be read:  Sunraster, GIF, Xbitmap,  TIFF,
  1156. Xpixmap, JPEG, PBM, XWD.
  1157.  
  1158.     The LUG (Libreria de Utilidades Graficas) is a library of subroutines
  1159. offering several routines for the manipulation of images in several different
  1160. formats. The distribution includes viewers for several different platforms. The
  1161. distribution is on telva.ccu.uniovi.es (156.35.31.31): 
  1162. /uniovi/mathdept/src/liblug-1.0.1.tar.gz.
  1163.  
  1164. [some material from Larry Carroll (larryc@poe.jpl.nasa.gov), 5/91]
  1165.  
  1166. ----------------------------------------------------------------------
  1167. Subject:  25)  Where can I get an X-based 3-D object viewer?
  1168.  
  1169.     xmgf by Paul Hoad (P.Hoad@ee.surrey.ac.uk) is an interactive tool for 
  1170. viewing 2D and 3D objects typically in gf/OFF/NFF/IGRIP/MINICAD/SLA/DXF format
  1171. Sources are on ftp.x.org.  Version 1.9.1 became available 12/93.
  1172.  
  1173.     x3d is a V.Fast 3D Object viewer for X it needs no special hardware or
  1174. or widget libraries other that X and is optimized for speed.
  1175.  
  1176.     XGobi can be used to to view such data.
  1177.     
  1178.     VOGLE can be used to to view such data.
  1179.  
  1180. ----------------------------------------------------------------------
  1181. Subject:  26)  How can I change the titlebar of my xterm window?
  1182.  
  1183.     The solution involves sending an escape sequence to xterm which will
  1184. cause it to update the property which the window manager relies upon for the
  1185. string which appears in the window titlebar.
  1186.     A solution is as easy as typing this in an xterm running a shell:
  1187.         echo "ESC]2;TEXT^G"
  1188. where ESC is the escape key, TEXT is the string you wish to have displayed,
  1189. and ^G is a Control-G (the BEL character). Note that the semi-colon is
  1190. demanded by more recent versions of xterm. (Some shells and editors need an
  1191. escape character, typically ^V, before accepting control characters literally.)
  1192.  
  1193.     Here is a more complicated csh alias which changes the titlebar to the
  1194. current working directory when you change directories:
  1195.         alias newcd 'cd \!*; echo -n ESC]2\;$cwd^G'
  1196. (for other shells e.g. ksh you will need to write a function for cd to print
  1197. this value).
  1198.  
  1199.     The digit '2' in these strings indicates to xterm that it should
  1200. change only the title of the window; to change both the title and the name
  1201. used in the icon, use the digit '0' instead, and use '1' to change only the
  1202. icon name.
  1203.  
  1204.     Note: another way to do this, which prevents an incorrect display of
  1205. the local directory if a modified `cd` is used in a subshell, is to wrap the
  1206. escape sequences into the PS1 prompt itself.
  1207.  
  1208. ----------------------------------------------------------------------
  1209. Subject:  27)  Where can I find the xterm control sequences?
  1210.  
  1211. The best source of such information is in your R5 sources in the file
  1212. ctlseqs.ms; a PostScript version is in mit/hardcopy/clients/ctlseqs.PS.Z.
  1213.  
  1214. O'Reilly's Volume 3, the X User's Guide, includes an R5 version of the control
  1215. sequences; the standard volume will be available 3/93, and a Motif version of
  1216. the book is available now. The current (R4) guide includes an outdated version
  1217. of the control sequences. [1/93]
  1218.  
  1219. Other good sources of information include the R4 version of that document and
  1220. also the file in the R4 sources called mit/clients/xterm/ctlseq2.txt, a
  1221. compilation put together by Skip Montanaro (GE CR&D) listing the VT100
  1222. sequences. It dates from R3 but is fairly accurate.  A hardcopy version was
  1223. published in the December 1989 XNextEvent (the XUG newsletter).
  1224.  
  1225. In a pinch, a VT100 manual will do.
  1226.  
  1227. [last updated 10/91]
  1228.  
  1229. ----------------------------------------------------------------------
  1230. Subject:  28)  How can I use characters above ASCII 127 in xterm ?
  1231.  
  1232.     In order to use special characters such as the o-umlaut, you need to
  1233. "stty pass8" but also to use a charcell ISO8859 font, such as
  1234.     XTerm*font:     -*-*-medium-r-normal-*-*-130-*-*-c-*-iso8859-1
  1235.     XTerm*boldfont: -*-*-bold-r-normal-*-*-130-*-*-c-*-iso8859-1 [The
  1236. family is intentionally unspecified in this example.]
  1237.  
  1238. In addition, you may want to set this in your shell:
  1239.     setenv LC_CTYPE iso_8859_1
  1240.  
  1241.     For a given character above 127, you can determine the key to use with
  1242. the Alt modifier by finding the equivalent character below 127 (try using `man
  1243. ascii`). For example, o-umlaut (v) is Alt-v and the section character (') is
  1244. Alt-'.
  1245.  
  1246. [thanks to Greg Holmberg (greg%thirdi@uunet.uu.net) and Stephen Gildea
  1247. (gildea@x.org); 6/92]
  1248.  
  1249. ----------------------------------------------------------------------
  1250. Subject:  29)  Why are my xterm menus so small (sic) ?
  1251.  
  1252.     You are probably setting the geometry small accidentally. If you give
  1253. a resource specification like this:
  1254.         xterm*geometry: 80x24
  1255. then you are asking for all widgets under xterm to have their geometry set to
  1256. 80x24. For the main window, this is OK, as it uses characters for its size.
  1257. But its popup menus don't; they are in pixels and show up small. To set only
  1258. the terminal widget to have the specified geometry, name it explicitly:
  1259.         xterm*VT100.geometry: 80x24
  1260.  
  1261. ----------------------------------------------------------------------
  1262. Subject:  30)  How can I print the current X selection?
  1263.  
  1264.     You could paste it into an xterm after executing the lpr command.
  1265. However, a program by Richard Hesketh (rlh2@ukc.ac.uk) specifically for
  1266. manipulating the selection will help; e.g.
  1267.     % xselection PRIMARY | lpr 
  1268. finds the primary selection and prints it.
  1269.     This command can be placed in a window-manager menu or in
  1270. shell-scripts.  xselection also permits the setting of the selection and other
  1271. properties. A version is on ftp.x.org.
  1272.     Also available is ria.ccs.uwo.ca:pub/xget_selection.tar.Z, which can
  1273. be adapted to do this.
  1274.  
  1275. ----------------------------------------------------------------------
  1276. Subject:  31)  How does Xt use environment variables in loading resources?
  1277.  
  1278.     You can use several environment variables to control how resources are
  1279. loaded for your Xt-based programs -- XFILESEARCHPATH, XUSERFILESEARCHPATH, and
  1280. XAPPLRESDIR.  These environment variables control where Xt looks for
  1281. application-defaults files as an application is initializing.  Xt loads at
  1282. most one app-defaults file from the path defined in XFILESEARCHPATH and
  1283. another from the path defined in XUSERFILESEARCHPATH.
  1284.  
  1285.     XAPPLRESDIR existed in R3 and before.  As of R4, the Xt developers
  1286. added the more sophisticated *SEARCHPATH mechanism, but left XAPPLRESDIR in
  1287. place to avoid breaking existing software.
  1288.  
  1289.     Set XFILESEARCHPATH if software is installed on your system in such a
  1290. way that app-defaults files appear in several different directory
  1291. hierarchies.  Suppose, for example, that you are running Sun's Open Windows,
  1292. and you also have some R4 X applications installed in
  1293. /usr/lib/X11/app-defaults. You could set a value like this for
  1294. XFILESEARCHPATH, and it would cause Xt to look up app-defaults files in both
  1295. /usr/lib/X11 and /usr/openwin/lib (or wherever your OPENWINHOME is located):
  1296.     setenv XFILESEARCHPATH /usr/lib/X11/%T/%N:$OPENWINHOME/lib/%T/%N
  1297.  
  1298. The value of this environment variable is a colon-separated list of
  1299. pathnames.  The pathnames contain replacement characters as follows (see
  1300. XtResolvePathname()):
  1301.  
  1302.     %N      The value of the filename parameter, or the
  1303.         application's class name.  
  1304.     %T      The value of the file "type".  In this case, the
  1305.         literal string "app-defaults" 
  1306.     %C      customization resource (R5 only) 
  1307.     %S      Suffix.  None for app-defaults.  
  1308.     %L      Language, locale, and codeset (e.g. "ja_JP.EUC") 
  1309.     %l      Language part of %L (e.g. "ja") 
  1310.     %t      The territory part of the display's language string 
  1311.     %c      The codeset part of the display's language string
  1312.  
  1313.     Let's take apart the example.  Suppose the application's class name is
  1314. "Myterm". Also, suppose Open Windows is installed in /usr/openwin.
  1315. (Notice the example omits locale-specific lookup.)
  1316.     /usr/lib/X11/%T/%N        means /usr/lib/X11/app-defaults/Myterm
  1317.     $OPENWINHOME/lib/%T/%N    means /usr/openwin/lib/app-defaults/Myterm
  1318.  
  1319.     As the application initializes, Xt tries to open both of the above
  1320. app-defaults files, in the order shown.  As soon as it finds one, it reads it
  1321. and uses it, and stops looking for others.  The effect of this path is to
  1322. search first in /usr/lib/X11, then in /usr/openwin.
  1323.  
  1324.     Let's consider another example. This time, let's set
  1325. XUSERFILESEARCHPATH so it looks for the file Myterm.ad in the current working
  1326. directory, then for Myterm in the directory ~/app-defaults.
  1327.     setenv XUSERFILESEARCHPATH ./%N.ad:$HOME/app-defaults/%N
  1328.  
  1329.     The first path in the list expands to ./Myterm.ad.  The second expands
  1330. to $HOME/app-defaults/Myterm.  This is a convenient setting for debugging
  1331. because it follows the Imake convention of naming the app-defaults file
  1332. Myterm.ad in the application's source directory, so you can run the
  1333. application from the directory in which you are working and still have the
  1334. resources loaded properly.  NOTE: when looking for app-default files with
  1335. XUSERFILESEARCHPATH, for some bizarre reason, neither the type nor file suffix
  1336. is defined so %T and %S are useless.
  1337.  
  1338.     With R5, there's another twist.  You may specify a customization
  1339. resource value.  For example, you might run the "myterm" application like
  1340. this:
  1341.     myterm -xrm "*customization: -color"
  1342.  
  1343.     If one of your pathname specifications had the value
  1344. "/usr/lib/X11/%T/%N%C" then the expanded pathname would be
  1345. "/usr/lib/X11/app-defaults/Myterm-color" because the %C substitution character
  1346. takes on the value of the customization resource.
  1347.  
  1348.     The default XFILESEARCHPATH, compiled into Xt, is:
  1349.         /usr/lib/X11/%L/%T/%N%C:\  (R5) /usr/lib/X11/%l/%T/%N%C:\ (R5)
  1350.         /usr/lib/X11/%T/%N%C:\     (R5) /usr/lib/X11/%L/%T/%N:\
  1351.         /usr/lib/X11/%l/%T/%N:\ /usr/lib/X11/%T/%N
  1352.  
  1353.     (Note: some sites replace /usr/lib/X11 with a ProjectRoot in this
  1354. batch of default settings.)
  1355.  
  1356.     The default XUSERFILESEARCHPATH, also compiled into Xt, is
  1357.         <root>/%L/%N%C:\  (R5) <root>/%l/%N%C:\  (R5)
  1358.         <root>/%N%C:\     (R5) <root>/%L/%N:\ <root>/%l/%N:\
  1359.         <root>/%N:
  1360.  
  1361.     <root> is either the value of XAPPLRESDIR or the user's home directory
  1362. if XAPPLRESDIR is not set.  If you set XUSERFILESEARCHPATH to some value other 
  1363. than the default, Xt ignores XAPPLRESDIR altogether.
  1364.  
  1365.     Notice that the quick and dirty way of making your application find
  1366. your app-defaults file in your current working directory is to set XAPPLRESDIR
  1367. to ".", a single dot.  In R3, all this machinery worked differently; for R3
  1368. compatibilty, many people set their XAPPLRESDIR value to "./", a dot followed
  1369. by a slash.
  1370.  
  1371. [Thanks to Oliver Jones (oj@world.std.com); 2/93.]
  1372.  
  1373. ----------------------------------------------------------------------
  1374. Subject:  32)  How to I have xdm put a picture behind the log-in window?
  1375.  
  1376. R5 users can specify the "setup" script that xdm runs by changing the entry
  1377. in the xdm-config file (usually in /usr/lib/X11/xdm) to name a different 
  1378. script; the sample script distributed with X11R5 simply runs xconsole.
  1379.  
  1380. Earlier versions of the xdm client could be spoofed by in changing xdm's xrdb
  1381. resource in the xdm-config file to run a program to change the background
  1382. before loading the resources; for example, your /usr/lib/X11/xdm/xdm-config
  1383. file may add the line
  1384.     DisplayManager.0.authorize: false 
  1385. to permit unrestricted access to the display before log-in (beware!) and also
  1386.     DisplayManager*xrdb:    /usr/lib/X11/xdm/new.xrdb 
  1387. where that file does something (for all connections) along the lines of:
  1388.     #!/bin/sh 
  1389.     #comes in with arguments: -display :0 -load /usr/lib/X11/xdm/Xresources
  1390.     /usr/bin/X11/xsetroot -display $2 -bitmap /usr/lib/X11/xdm/new.bitmap 
  1391.     /usr/bin/X11/xrdb $* 
  1392. Substitute xloadimage or xv for xsetroot, to taste.  Note that this is a
  1393. general hack that can be used to invoke a console window or any other client.
  1394.  
  1395. [Thanks to Jay Bourland (jayb@cauchy.stanford.edu), 9/91]
  1396.  
  1397. ----------------------------------------------------------------------
  1398. Subject:  33)  Why isn't my PATH set when xdm runs my .xsession file?
  1399.  
  1400.     When xdm runs your .xsession it doesn't source your .cshrc or .login
  1401. files. You can set the path explicitly as you normally could for any SH
  1402. script; or you can place all environment-setting statements in a separate file
  1403. and source it from both the .xsession file and your shell configuration file;
  1404. or, if you set your PATH in your .cshrc file, the normal place, you can make
  1405. your .xsession have PATH set simply by making it a csh script, i.e. by starting
  1406. your .xsession file off with "#!/bin/csh".
  1407.     If this doesn't work, also try starting off with:
  1408.     #!/bin/sh # Reset path:  PATH=`csh -c 'echo $PATH'` ; export PATH
  1409.  
  1410. ----------------------------------------------------------------------
  1411. Subject:  34)  How do I keep my $DISPLAY when I rlogin to another machine?
  1412.  
  1413.     There are several ways to avoid having to do a "setenv DISPLAY ..."
  1414. whenever you log in to another networked UNIX machine running X.
  1415.     A trivial solution, if your account is cross-mounted on both machines,
  1416. is to have your .xsession write your DISPLAY variable to a file, and then in
  1417. your login dot-files to check for the existence of that that file and use its
  1418. contents as your DISPLAY. [Thanks to joachim.fricker@zh014.ubs.ubs.ch.]
  1419.     One solution is to use the clients/xrsh on the R5 contrib tape.  It 
  1420. includes xrsh, a script to start an X application on remote machine, and
  1421. xrlogin, a script to start a local xterm running rlogin to a remote machine.
  1422. A more recent version is on export in xrsh-5.4.shar.
  1423.     One solution is to use the xrlogin program from der Mouse
  1424. (mouse@larry.mcrcim.mcgill.edu). You can ftp caveat-emptor versions from
  1425. 132.206.1.1, in X/xrlogin.c and X/xrlogind.c. The program packages up $TERM and
  1426. $DISPLAY into a single string, which is stuffed into $TERM.  rlogin then 
  1427. propagates $TERM normally; your .cshrc on the remote machine should contain
  1428.         eval `xrlogind`
  1429. where xrlogind is a program that checks $TERM and if it is of the special 
  1430. format it recognizes, unpacks it and spits out setenv and unsetenv commands to 
  1431. recreate the environment variables. [11/90]
  1432.  
  1433.     In addition, if all you need to do is start a remote X process on 
  1434. another host, and you find
  1435.         rsh <HOST> -n /usr/bin/X11/xterm -display $DISPLAY 
  1436. too simple (DISPLAY must have your real hostname), then this version of xrsh 
  1437. can be used to start up remote X processes. The equivalent usage would be 
  1438.         xrsh <HOST> xterm
  1439.  
  1440.   #! /bin/sh
  1441.   # start an X11 process on another host
  1442.   # Date: 8 Dec 88 06:29:34 GMT
  1443.   # From: Chris Torek <chris@mimsy.umd.edu>
  1444.   # rsh $host -n "setenv DISPLAY $DISPLAY; exec $@ </dev/null >&/dev/null"
  1445.   #
  1446.   # An improved version:
  1447.   # rXcmd (suggested by John Robinson, jr@bbn.com)
  1448.   #       (generalized for sh,ksh by Keith Boyer, keith@cis.ohio-state.edu)
  1449.   #
  1450.   # but they put the rcmd in ()'s which left zombies again.  This
  1451.   # script combines the best of both.
  1452.   
  1453.   case $# in
  1454.   [01])  echo "Usage: $0 host x-cmd [args...]";;
  1455.   *)
  1456.       case $SHELL in
  1457.       *csh*)  host="$1"; shift
  1458.           xhost "$host" > /dev/null
  1459.           rsh "$host" -n \
  1460.               "setenv TERM xterm; setenv DISPLAY `hostname`:0; \
  1461.               exec $* </dev/null >& /dev/null" &
  1462.           ;;
  1463.       *sh)
  1464.           host="$1"; shift
  1465.           xhost "$host" > /dev/null
  1466.           rsh "$host" -n \
  1467.               "TERM=xterm export TERM; \
  1468.               DISPLAY=`hostname`:0 export DISPLAY; \
  1469.               LD_LIBRARY_PATH=/usr/X11/lib export LD_LIBRARY_PATH; \
  1470.               PATH=\$PATH:/usr/X11/bin:/usr/bin/X11:/usr/local/bin; \
  1471.             export PATH; \
  1472.               exec $* < /dev/null > /dev/null 2>&1" &
  1473.           ;;
  1474.       esac
  1475.       ;;
  1476.   esac
  1477.  
  1478. ----------------------------------------------------------------------
  1479. Subject:  35)! How can I design my own font?
  1480.  
  1481.     One way is to use the "bitmap" client or some other bitmap-editor
  1482. (e.g.  Sun's icon-editor tool, post-processed with pbmplus) to design the
  1483. individual characters and then to do some large amount of post-processing to
  1484. concatenate them into the BDF format. See Ollie Jones's article in the
  1485. November 91 X Journal for more information.
  1486.  
  1487.     The R3 contrib/ area (in fonts/utils/ and in clients/xtroff) contained
  1488. a number of useful utilities, including some to convert between BDF font
  1489. format and a simple character format which can be edited with any text
  1490. editor.
  1491.  
  1492.     An easier way is to use the "xfed" client to modify an existing font;
  1493. a version is on the R4 or R5 X11R5 contrib tape in contrib/clients/xfed. Xfed
  1494. was last seen on ftp.Informatik.Uni-Dortmund.DE [129.217.64.63], possibly as
  1495. file /pub/windows/X/Diverse-X11-Sourcen/xfed.tar.Z. It can produce BDF-format
  1496. fonts which can be compiled for a variety of X servers.
  1497.  
  1498.     The xfedor client from Group Bull permits creation of bitmaps,
  1499. cursors, XPM1 pixmaps, and fonts. Binaries for common machines are on
  1500. avahi.inria.fr in /pub; in addition, the sources (an old Xlib implementation)
  1501. have been placed [5/91] in ftp.x.org:/contrib.
  1502.  
  1503.     If you are a MetaFont user you can use "mftobdf" from the SeeTeX
  1504. distribution to convert PK, GF, and PXL fonts to BDF format; the distribution
  1505. is on ftp.cs.colorado.edu and on ftp.x.org.
  1506.     The GNU package fontutils-0.4.tar.Z on prep.ai.mit.edu includes xbfe,
  1507. a font editor, and a number of utilities for massaging font formats.
  1508.     The O'Reilly X Resource issue #2 contains an article on using these
  1509. tools to modify a font.
  1510.  
  1511.     Fonts can be resized with Hiroto Kagotani's bdfresize; a new version
  1512. is in ftp.cs.titech.ac.jp:/X11/contrib.  bdffont in the Andrew User Interface
  1513. System (versions 5.2.2 and higher) lets you create a font or edit an existing
  1514. one.
  1515.  
  1516. ----------------------------------------------------------------------
  1517. Subject:  36)  Why does adding a font to the server not work (sic)?
  1518.  
  1519.     After you have built the font using your system's font-compiler,
  1520. installed it in some directory, and run `mkfontdir` or your system's
  1521. equivalent (e.g. bldfamily for OpenWindows) in that directory, be sure to use
  1522. `xset +fp $dir` to add that full path-name to the server's font-path, *or* if
  1523. the directory is already in the path, use `xset fp rehash` so that the new
  1524. fonts in that directory are actually found; it is this last step that you're
  1525. probably leaving out. (You can also use `xset q` to make sure that that
  1526. directory is in the path.)
  1527.     Sometimes your "xset +fp $dir" command fails with a BadValue error:
  1528.         X Error of failed request:BadValue
  1529.             (integer parameter out of range for operation) Major
  1530.         opcode of failed request:  51 (X_SetFontPath)
  1531.  
  1532.     This means the X server cannot find or read your font directory, or
  1533. that your directory does not look like a font directory to the server.  (The
  1534. mention of an "integer parameter" in the message is spurious.)
  1535.  
  1536. -- Is the font directory you're specifying readable from the SERVER's file
  1537.    system?  Remember, it's the server, not the client, which interprets your
  1538.    font directory.  Trouble in this area is especially likely when you issue
  1539.    an xset command with shell metacharacters in it (e.g. "xset +fp ~/myfonts")
  1540.    and the server is an X terminal or managed by xdm.
  1541.  
  1542. -- Is the directory really a font directory?  If you're running the sample X
  1543.    server (or most varieties of vendor servers) look in the directory for the
  1544.    file "fonts.dir".  If you can't find that file, run mkfontdir(1). (If you're
  1545.    running OpenWindows, look for the file "Families.list".  If you can't find
  1546.    it, run bldfamily(1).)
  1547.  
  1548. -- If you're in a site where some people run X11Rn servers and others run a
  1549.    proprietary server with nonstandard font formats (OpenWindows, for
  1550.    example), make sure the font directory is right for the server you're
  1551.    using.  Hint: if the directory contains .pcf and/or .snf files, it won't
  1552.    work for Open Windows.  If the directory contains .ff and/or .fb files, it
  1553.    won't work for X11Rn.
  1554.  
  1555. [thanks to der Mouse (mouse@larry.mcrcim.mcgill.edu) and to Oliver Jones
  1556. (oj@pictel.com); 7/92 ]
  1557.  
  1558. ----------------------------------------------------------------------
  1559. Subject:  37)  How do I convert a ".snf" font back to ".bdf" font?
  1560.  
  1561.     A tool called "snftobdf 1.6" can do this; it is available as:
  1562.         ftp.x.org:contrib/snftobdf-1.6.tar.Z
  1563.         crl.nmsu.edu:pub/misc/snftobdf-1.6.tar.Z
  1564.  
  1565. ----------------------------------------------------------------------
  1566. Subject:  38)  What is a general method of getting a font in usable format?
  1567.  
  1568.     der Mouse's getbdf is one solution; it connects to a server and
  1569. produces a .BDF file for any font the server is willing to let it.  It can be
  1570. used as an anything-to-BDF converter, but requires access to a server that can
  1571. understand the font file, thus is both more and less powerful than other tools
  1572. such as snftobdf. getbdf is on 132.206.1.1 in X/getbdf.c or available via mail
  1573. from mouse@larry.McRCIM.McGill.EDU. [5/91]
  1574.     In addition, the R5 program "fstobdf" can produce bdf for any font
  1575. that the R5 server has access to.
  1576.  
  1577. ----------------------------------------------------------------------
  1578. Subject:  39)  How do I use DECwindows fonts on my non-DECwindows server?
  1579.  
  1580.     The DECwindows fonts typically don't exist on a non-DEC installation,
  1581. but rewrite rules can be used to alias fonts used by DECwindows applications
  1582. to standard X fonts of similar characteristics and size. Pick up the file
  1583. contrib/DECwindows_on_X11R4_font.aliases from ftp.x.org; this file is for a
  1584. sample R4 server.  It can also serve as a starting point for creating a
  1585. similar aliases file for the Open Windows server or other servers which do not
  1586. use the X Consortium's font scheme.
  1587.  
  1588. ----------------------------------------------------------------------
  1589. Subject:  40)  How can I set backgroundPixmap in a defaults file? (What is XPM?) 
  1590. I want to be able to do something like this:
  1591.     xclock*backgroundPixmap:      /usr/include/X11/bitmaps/rootweave
  1592.  
  1593.     You can't do this. The backgroundPixmap resource is a pixmap of the
  1594. same depth as the screen, not a bitmap (which is a pixmap of depth 1).
  1595. Because of this, writing a generic String to Pixmap converter is impossible,
  1596. since there is no accepted convention for a file format for pixmaps.
  1597. Therefore, neither the X Toolkit or the Athena widget set define a String to
  1598. Pixmap converter; because there is no converter you cannot specify this value
  1599. as a resource.  The Athena widget set does define a String to Bitmap converter
  1600. for use in many of its widgets, however.  [courtesy Chris D.  Peterson (now
  1601. kit@ics.com), 4/90]
  1602.  
  1603. However:
  1604.     A specific converter which encapsulates much of the functionality of
  1605. the xloadimage package by Jim Frost was posted 12/90 by Sebastian Wangnick
  1606. (basti@unido.informatik.uni-dortmund.de); it permits loading of a number of
  1607. image formats as a pixmap.
  1608.  
  1609.     The leading general-purpose format for pixmaps is the XPM format used
  1610. by Groupe Bull in several of its programs, including the GWM window manager,
  1611. by AT&T in its olpixmap editor, and by ICS in its interface builder. XPM
  1612. distribution, available on ftp.x.org as contrib/xpm.tar.Z, includes read/write
  1613. routines which can easily be adapted to converters by new widgets which want
  1614. to allow specification of pixmap resources in the above manner.  See
  1615. information on the xpm-talk mailing list above. XPM 3.2g was announced in
  1616. 4/93 and is available from ftp.x.org and avahi.inria.fr; an older version is
  1617. on the R5 contrib tape. Version 3.3 became available 12/93. [A set of XPM
  1618. icons collected by Anthony Thyssen (anthony@kurango.cit.gu.edu.au) is on
  1619. ftp.x.org in contrib/AIcons; the hobbes-icon-xpm3 collection of XPM icons is
  1620. on hobbes.nmsu.edu./]
  1621.  
  1622. ----------------------------------------------------------------------
  1623. Subject:  41)  Why can't I override translations? Only the first item works. (sic)
  1624.  
  1625.     You probably have an extra space after the specification of the first 
  1626. item, like this:
  1627.     basic*text.translations:  #override \
  1628.     Ctrl<Key>a:    beginning-of-line() \n\     
  1629.     Ctrl<Key>e:    end-of-line()
  1630.                           ^ extra space
  1631. The newline after that space is ending the translation definition.
  1632. [Thanks to Timothy J. Horton, 5/91]
  1633.  
  1634. ----------------------------------------------------------------------
  1635. Subject:  42)  How can I have a clock show different timezones?
  1636.  
  1637.     One solution is xchron, in Volume 6 of comp.sources.x, which can show
  1638. the time for timezones other than the local one.
  1639.     sunclock on ftp.x.org displays a world map with sun/dark areas and
  1640. local and UTC time.
  1641.     The OpenWindows clock has a TimeZone property.  Modifications to the
  1642.     Xaw clock widget to support hour and minute offsets were posted by
  1643. David Herron (david@twg.com).
  1644.     A patch for the clock coming with the Xaw3D widgets introduces
  1645. resources hourOffset, minuteOffset, gmt; it can be found at
  1646. ftp.wu-wien.ac.at:pub/src/X11/wafe/xaw3d.Clock.patch.
  1647.  
  1648.     Alternatively, you can probably set the timezone in the shell from
  1649. which you invoke the xclock or oclock, or use a script similar to this:
  1650.     #!/bin/sh 
  1651.     TZ=PST8PDT xclock -name "Burnt" 2> /dev/null &
  1652.     TZ=EST5EDT xclock -name "Frozen" 2> /dev/null &
  1653.  
  1654. ----------------------------------------------------------------------
  1655. Subject:  43)  I have xmh, but it doesn't work. Where can I get MH?
  1656.  
  1657. The xmh mail-reader requires the Rand MH mail/message handling system, which
  1658. is not part of the UNIX software distribution for many machines.  A list of
  1659. various ftp, uucp, e-mail and US-mail sites for both xmh and MH is given in
  1660. the monthly MH FAQ; one source is ics.uci.edu.
  1661.  
  1662. ----------------------------------------------------------------------
  1663. Subject:  44)  Why am I suddenly unable to connect to my Sun X server?  
  1664. After a seemingly random amount of time after the X server has been started,
  1665. no other clients are able to connect to it.
  1666.  
  1667.     The default cron cleanup jobs supplied by Sun (for 4.0.3, at least)
  1668. delete "old" (unreferenced) files from /tmp -- including /tmp/.X11-unix, which
  1669. contains the socket descriptor used by X. The solution is to add "!  -type s"
  1670. to the find exclusion in the cron job.  [10/90]
  1671.  
  1672. ----------------------------------------------------------------------
  1673. Subject:  45)  Why don't the R5 PEX demos work on my mono screen?
  1674.  
  1675. The R5 sample server implementation works only on color screens, sorry.
  1676.  
  1677. ----------------------------------------------------------------------
  1678. Subject:  46)  How do I get my Sun Type-[45] keyboard fully supported by Xsun?
  1679.  
  1680. Many users wants the Num Lock key to light the Num Lock LED and have the
  1681. appropriate effect on the numeric keypad. The Xsun server as distributed by
  1682. the Consortium doesn't do this but there are two different patches available.
  1683.  
  1684. The first patch is written by Jonathan Lemon and fixes the Num Lock related
  1685. problems. It is available from ftp.x.org in the file
  1686. contrib/Xsun-R5.numlock_patch.Z .
  1687.  
  1688. The second is written by Martin Forssen and fixes the Num Lock and Compose
  1689. keys and adds support for the different national keyboard layouts for Type-4
  1690. and Type-5 keyboards. This patch is available from ftp.x.org in
  1691. contrib/sunkbd.930314.tar.Z or via email from maf@dtek.chalmers.se.
  1692.  
  1693. [thanks to Martin Forssen (maf@dtek.chalmers.se or maf@math.chalmers.se),
  1694. 8/92]
  1695.  
  1696. A set of patches by William Bailey (dbgwab@arco.com) was posted to newsgroups
  1697. 11/92 to provide support for the Type-5 keyboard.
  1698.  
  1699. (Note that use of xmodmap to map function and arrow keys can make the Type 5
  1700. keyboard more useful without needing these patches.)
  1701.  
  1702. ----------------------------------------------------------------------
  1703. Subject:  47)  How do I report bugs in X?
  1704.  
  1705.     Generally, report bugs you find to the organization that supplied you
  1706. with the X Window System. If you received the R5 source distribution directly
  1707. from the Consortium, please read the file mit/bug-report for instructions.
  1708. [Look in mit/doc/bugs/bug-report in R4.]
  1709.  
  1710. [Thanks to Stephen Gildea <gildea@x.org>, 5/91; 12/91]
  1711.  
  1712. ----------------------------------------------------------------------
  1713. Subject:  48)  Why do I get "Warning: Widget class version mismatch"?
  1714.  
  1715.     This error, which typically goes on to say, "widget 11004 vs.
  1716. intrinsics 11003" indicates that the header files you included when building
  1717. your program didn't match the header files that the Xt library you're linking
  1718. against was built with; check your -I include path and -L link-path to be
  1719. sure.
  1720.     However, the problem also occurs when linking against a version of the
  1721. X11R4 Xt library before patch 10; the version number was wrong.  Some Sun OW
  1722. systems, in particular, were shipped with the flawed version of the library,
  1723. and applications which link against the library typically give the warnings
  1724. you have seen.
  1725.  
  1726. ----------------------------------------------------------------------
  1727. Subject:  49)+  Why does my SPARC say "Mapping cg3c: No such device or address"?
  1728.  
  1729.     This problem comes up on Sun SPARC Classic machines.  There is no X
  1730. Consortium fix for this problem, but the correction can be made to X11R5
  1731. sources by editing the file "src/mit/server/ddx/sun/sunCG3C.c". Find the
  1732. second buffer definition that looks like this:
  1733.  
  1734.    typedef struct cg3bc {
  1735.    #ifdef sparc
  1736.            u_char mpixel[128*1024];         /* bit-per-pixel memory */
  1737.            u_char epixel[128*1024];         /* enable plane */
  1738.    #endif
  1739.            u_char cpixel[CG3B_HEIGHT][CG3B_WIDTH];   /* byte-per-pixel memory */
  1740.    } CG3BC, CG3BCRec, *CG3BCPtr;
  1741.  
  1742. and change the instances of "128*1024" to "96*1024". Then recompile the
  1743. X server.
  1744.  
  1745. [thanks to Russ Poffenberger (poffen@San-Jose.ate.slb.com)]
  1746.  
  1747. ----------------------------------------------------------------------
  1748. Subject:  50)  Where can I find a dictionary server for xwebster?
  1749.  
  1750.     Webster's still owns the copyright to the on-line copies of Webster's
  1751. Dictionary which are found at various (university) sites. After it became
  1752. aware that these sites were then acting as servers for other sites running
  1753. xwebster and gnuemacs-webster, it asked that server sites close off external
  1754. access.
  1755.     [The NeXT machine apparently is also licensed to have the dictionary.
  1756.     A Webster daemon for NeXT machines is available from
  1757. iuvax.cs.indiana.edu (129.79.254.192) in "pub/webster/NeXT-2.0".]
  1758.     Unless you want to get a legal on-line copy yourself or can find a
  1759. site which can grant you access, you are probably out of luck.
  1760.  
  1761.     However, if you are a legitimate site, you'll want to pick up the
  1762. latest xwebster, as-is on ftp.x.org:contrib/xwebster.tar.Z [10/91]; the file
  1763. xwebster.README includes discussions of the availability, illegality, and
  1764. non-availability of dictionary servers.
  1765.  
  1766. [courtesy steve@UMIACS.UMD.EDU (Steve Miller) and mayer@hplabs.hp.com (Niels
  1767. Mayer) 11/90]
  1768.  
  1769. ----------------------------------------------------------------------
  1770. Subject:  51)  TOPIC: OBTAINING X AND RELATED SOFTWARE AND HARDWARE
  1771. ----------------------------------------------------------------------
  1772. Subject:  52)  Is X public-domain software?
  1773.  
  1774.     No. The X software is copyrighted by various institutions and is not
  1775. "public domain", which has a specific legal meaning. However, the X
  1776. distribution is available for free and can be redistributed without fee.
  1777.     Contributed software, though, may be placed in the public domain by
  1778. individual authors.
  1779.  
  1780. ----------------------------------------------------------------------
  1781. Subject:  53)  How compatible are X11R3, R4, and R5? What changes are there?
  1782.  
  1783. The Release Notes for each release of X11 specify the changes from the
  1784. previous release.  The X Consortium tries very hard to maintain compatibility
  1785. across releases.  In the few places where incompatible changes were necessary,
  1786. details are given in the Release Notes.  Each X11 distribution site on the
  1787. network also offers the Release Notes that go with the release they offer; the
  1788. file typically can be found at the top of the distribution tree.
  1789.  
  1790. [Stephen Gildea, 1/92]
  1791.  
  1792. The comp.windows.x.intrinsics FAQ-Xt lists Xt differences among these
  1793. versions.
  1794.  
  1795. ----------------------------------------------------------------------
  1796. Subject:  54)  When is X11R6 rumored to be available?
  1797.  
  1798. The tentative schedule, mentioned at the January X Conference, is:
  1799.         Beta Release: February 11, 1994
  1800.         Final Release: April 15, 1994
  1801.     Public Release: April 25, 1994
  1802.     Contrib Release: June 1, 1994
  1803.  
  1804. ----------------------------------------------------------------------
  1805. Subject:  55)  When is Fresco rumored to be available?
  1806.  
  1807. Fresco is a C++-based X11 interface which should be available with X11R6, as
  1808. a draft standard.  It draws several design ideas from InterViews and will
  1809. ultimately incorporate much of the functionality of Xt and Xlib, and add some
  1810. significant new capabilities in the areas of structured graphics, device and
  1811. resolution independent drawing models, a standard object model (OMG CORBA)
  1812. and interface definition language (CORBA IDL), and application linking and
  1813. embedding.
  1814.  
  1815. There is a writeup on Fresco in the Proceedings of the 7th Annual X Technical
  1816. Conference, published in Issue 5 of the X Resource, published by O'Reilly and
  1817. Associates, ISBN 1-56592-020-1.  At this time source code is available only 
  1818. to Consortium members.
  1819.  
  1820. [Information from Kaleb Keithley (kaleb@x.org) and Matt Landau (matt@x.org); 
  1821. 1/94.]
  1822.  
  1823. ----------------------------------------------------------------------
  1824. Subject:  56)  Where can I get X11R5 (source and/or binaries)?
  1825.  
  1826. Information about the Consortium's distribution of the sources on 6250bpi and
  1827. QIC-24 tape and its distribution of hardcopy of the documents is available
  1828. from Software Center, Technology Licensing Office, Massachusetts Institute of
  1829. Technology, 28 Carleton Street, Room E32-300, Cambridge MA 02142-1324,
  1830. phone:  617-258-8330.
  1831.  
  1832. You will need about 100Mb of disk space to hold all of Core and 140MB to hold
  1833. the Contrib software donated by individuals and companies.
  1834.  
  1835. PLEASE use a site that is close to you in the network.
  1836.  
  1837. Note that the RELEASE notes are generally available separately in the same
  1838. directory; the notes list changes from previous versions of X and offer a
  1839. guide to the distribution.
  1840.  
  1841.               North America anonymous FTP:
  1842.  
  1843. California      gatekeeper.dec.com              pub/X11/R5
  1844.         16.1.0.2
  1845. California      soda.berkeley.edu               pub/X11R5
  1846.         128.32.131.179
  1847. Indiana         mordred.cs.purdue.edu           pub/X11/R5
  1848.         128.10.2.2
  1849. Maryland        ftp.brl.mil                     pub/X11R5
  1850.         128.63.16.158 (good for MILNET sites)
  1851. Massachusetts   crl.dec.com                     pub/X11/R5
  1852.         192.58.206.2
  1853. Massachusetts   ftp.x.org                       pub/R5
  1854.         198.112.44.100 (crl.dec.com is better)
  1855. Michigan        merit.edu                       pub/X11R5
  1856.         35.1.1.42
  1857. Missouri        wuarchive.wustl.edu             packages/X11R5
  1858.         128.252.135.4
  1859. Montana         ftp.cs.montana.edu              pub/X.V11R5
  1860.         192.31.215.202
  1861. New Mexico      pprg.eece.unm.edu               pub/dist/X11R5
  1862.         129.24.24.10
  1863. New York        azure.acsu.buffalo.edu          pub/X11R5
  1864.         128.205.7.6
  1865. North Carolina  cs.duke.edu                     dist/sources/X11R5
  1866.         128.109.140.1
  1867. Ohio            ftp.cis.ohio-state.edu          pub/X.V11R5
  1868.         128.146.8.52
  1869. Ontario         ftp.cs.utoronto.ca              pub/X11R5
  1870.         128.100.1.105
  1871. Washington DC   x11r5-a.uu.net                  X/R5
  1872.         192.48.96.12
  1873. Washington DC   x11r5-b.uu.net                  X/R5
  1874.         137.39.1.12
  1875.  
  1876.            Europe/Middle East/Australia anonymous FTP:
  1877.  
  1878. Australia       munnari.oz.au                   X.V11/R5
  1879.         128.250.1.21
  1880. Denmark         freja.diku.dk                   pub/X11R5
  1881.         129.142.96.1
  1882. United Kingdom  src.doc.ic.ac.uk                graphics/X.V11R5
  1883.         146.169.3.7 hpb.mcc.ac.uk                   pub/X11r5
  1884.         130.88.200.7
  1885. Finland         nic.funet.fi                    pub/X11/R5
  1886.         128.214.6.100
  1887. France          nuri.inria.fr                   X/X11R5
  1888.         128.93.1.26
  1889. Germany         ftp.germany.eu.net              pub/X11/X11R5
  1890.         192.76.144.129
  1891. Israel          cs.huji.ac.il                   pub/X11R5
  1892.         132.65.6.5
  1893. Italy           ghost.sm.dsi.unimi.it           pub/X11R5
  1894.         149.132.2.1
  1895. Netherlands     archive.eu.net                  windows/X/R5
  1896.         192.16.202.1
  1897. Norway          ugle.unit.no                    pub/X11R5
  1898.         129.241.1.97
  1899. Norway          nac.no                          pub/X11R5
  1900.         129.240.2.40
  1901. Switzerland     nic.switch.ch                   software/X11R5
  1902.         130.59.1.40
  1903.  
  1904.              Japan anonymous FTP:
  1905.  
  1906. Kanagawa        sh.wide.ad.jp                   X11R5
  1907.         133.4.11.11
  1908. Kwansai         ftp.ics.osaka-u.ac.jp           X11R5
  1909.         133.1.12.30
  1910. Kyushu          wnoc-fuk.wide.ad.jp             X11R5
  1911.         133.4.14.3
  1912. TISN            utsun.s.u-tokyo.ac.jp           X11R5
  1913.         133.11.11.11
  1914. Tokyo           kerr.iwanami.co.jp              X11R5
  1915.         133.235.128.1
  1916. Tokyo           scslwide.sony.co.jp             pub/X11R5
  1917.         133.138.199.1
  1918.  
  1919.                 UUCP:
  1920.  
  1921. uunet           for UUNET customers             ~/X/R5 decwrl existing
  1922. neighbors only         ~/pub/X11/R5
  1923. osu-cis                                         ~/X.V11R5
  1924.         (not online until ~ 9 Sept)
  1925. utai            existing neighbors only         ~/ftp/pub/X11R5
  1926. hp4nl           Netherlands only                ~uucp/pub/windows/X/R5
  1927.  
  1928.  
  1929.  
  1930.                  NFS:
  1931. Missouri        wuarchive.wustl.edu             /archive/packages/X11R5
  1932.         128.252.135.4                   mount point: /archive
  1933.  
  1934.                  AFS:
  1935. Pennsylvania    /afs/grand.central.org/pub/X11R5
  1936.  
  1937.              NIFTP (hhcp, cpf, fcp, ...):
  1938. United Kingdom  uk.ac.ic.doc.src                <X.V11R5>
  1939.         00000510200001 user "guest"
  1940.  
  1941.                   anon FTAM:
  1942. United Kingdom  000005102000 (Janet)            X.V11R5
  1943.         146.169.3.7 (Internet) 204334504108 (IXI)
  1944.  
  1945.                    ACSNet:
  1946. Australia       munnari.oz (fetchfile)          X.V11/R5
  1947.         Please fetch only one file at a time, after checking that a
  1948.         copy is not available at a closer site.
  1949.  
  1950. [9/2/91; updated for contrib 10/91]
  1951.  
  1952. Anyone in Europe can get a copy of the X.V11R5 distribution, including the
  1953. core and contributed software and all official patches, free of charge.  The
  1954. only requirement is to agree to return the tapes, or equivalent new tapes.
  1955. Only QIC and TK format cartridges can be provided.  Contact: Jamie Watson,
  1956. Adasoft AG, Nesslerenweg 104, 3084 Wabern, Switzerland.  Tel: +41 31 961.35.70
  1957. or +41 62 61.41.21; Fax: +41 62 61.41.30; jw@adasoft.ch.
  1958.  
  1959. UK sites can obtain X11 through the UKUUG Software Distribution Service, from
  1960. the Department of Computing, Imperial College, London, in several tape
  1961. formats.  You may also obtain the source via Janet (and therefore PSS) using
  1962. Niftp (Host:  uk.ac.ic.doc.src Name: guest Password: your_email_address).
  1963. Queries should be directed to Lee McLoughlin, 071-589-5111#5037, or to
  1964. info-server@doc.ic.ac.uk or ukuug-soft@uk.ac.ic.doc (send a Subject line of
  1965. "wanted"). Also offered are copies of comp.sources.x, the ftp.x.org contrib
  1966. and doc areas and most other announced freely distributable packages.
  1967.  
  1968. X11R5 and X11R4 source along with X11R5 contrib code, prebuilt X binaries for
  1969. major platforms (R5.21), and source code examples from O'Reilly's books is
  1970. available on an ISO-9660-format CD-ROM from O'Reilly & Associates. [6/92].
  1971.  
  1972. X11R5 source is available on ISO-9660-format CD-ROM for members of the Japan
  1973. Unix Society from Hiroaki Obata, obata@jrd.dec.com.
  1974.  
  1975. X11R5 source along with GNU source, the comp.sources.x archives, and SPARC
  1976. binaries is available on an ISO-9660-format CD-ROM from PDQ Software,
  1977. 510-947-5996 (or Robert A. Bruce, rab@sprite.Berkeley.EDU).
  1978.  
  1979. X11R5 source is available from Automata Design Associates, +1 215-646-4894.
  1980.  
  1981. X11R5 source is part of the Free Software Foundation GNU CD-ROM (2nd Edition);
  1982. +1 617 876 3296.
  1983.  
  1984. Various users' groups (e.g. SUG) offer X sources cheaply, typically on
  1985. CD-ROM.
  1986.  
  1987. Source and binaries for the Andrew User Interface System 5.1 are available on
  1988. CD-ROM.  The binaries are for four common systems and include XV11R5 binaries
  1989. for three of them.  Information: info-andrew-requests@andrew.cmu.edu,
  1990. 412-268-6710, fax 412-621-8081.  AUIS sources are also available via anonymous
  1991. ftp from emsworth.andrew.cmu.edu (128.2.45.40) and in various formats from the
  1992.     Andrew Consortium, 106 Smith Hall, Carnegie Mellon, 5000 Forbes Ave.,
  1993.     Pittsburgh PA 15213.
  1994.  
  1995. Binaries for X11R5, with shared libX11 and libXmu, for A/UX 2.0.1 are now
  1996. available from wuarchive.wustl.edu:/archive/systems/aux/X11R5.  Patches for
  1997. X11R5 compiled with gcc (but not shared libraries) are also available.  [John
  1998. L. Coolidge (coolidge@cs.uiuc.edu, 10/91)]
  1999.  
  2000. A binary tree for the Next by Douglas Scott (doug@foxtrot.ccmrc.ucsb.edu) is
  2001. on foxtrot.ccmrc.ucsb.edu; it is missing the server, though.
  2002.  
  2003. Binaries for the Sun386i are in vernam.cs.uwm.edu:/sun386i.
  2004.  
  2005. Binaries for the HP-PA are on hpcvaaz.cv.hp.com (15.255.72.15).
  2006.  
  2007. Binaries of X11R5.26 for Sun3/SunOS4.1.1 systems are on ftp.cad.gatech.edu as
  2008. X11R5.pl26.slim.sun3.gcc258.tar.gz; the distribution includes also binaries of
  2009. common X tools.
  2010.  
  2011. Binaries of X11R5 for Solaris 2, packaged for installation with pkgadd, are in
  2012. camus.quintus.com:/pub/X11R5.
  2013.  
  2014. Source and binaries for HP-UX 8.*/9.0(S300/400/700/800) and Domain 10.4 (68K,
  2015. DN 10K) are available through the Interworks Users Group; contact Carol Relph
  2016. at 508-436-5046, fax 508-256-7169, or relph_c@apollo.hp.com.
  2017.  
  2018. Patches to X11R5 for Solaris 2.1 by Casper H.S. Dik (casper@fwi.uva.nl) et al
  2019. are on ftp.x.org in contrib/{R5.SunOS5.patch.tar.Z,R5.SunOS5.patch.README}.
  2020.  
  2021. Patches to X11R5 for the Sun Type 5 keyboard and the keyboard NumLock are
  2022. available from William Bailey (dbgwab@arco.com). 
  2023.  
  2024. X servers for color and monochrome NeXT machines is on foxtrot.ccmrc.ucsb.edu
  2025. in /pub/X11R5-MouseX.tar.Z. Source patches are expected to be on orst and
  2026. sonata as X11R5-source.patch.tar.Z.
  2027.  
  2028. An X11R5 package for multi-lingual users is available (for SunOS 4.1.3 and 
  2029. Solaris 2.1 and later) on ftp.waseda.ac.jp (133.9.1.32) in
  2030. ftp/pub3/X11R5/binaries/. 
  2031.  
  2032. Also:
  2033.  
  2034. Binaries are available from Unipalm (+44 954 211797, xtech@unipalm.co.uk),
  2035. probably for the Sun platforms.
  2036.  
  2037. ----------------------------------------------------------------------
  2038. Subject:  57)  Where can I get XDM's Wraphelp.c ?
  2039.  
  2040. X11R5 supports a DES-based form of authorization.  There are several
  2041. implementations of the file Wraphelp.c, which may be missing from your
  2042. distribution; one is on ftp.psy.uq.oz.au:/pub/X11R5.
  2043.  
  2044. ----------------------------------------------------------------------
  2045. Subject:  58)  Where can I get patches to X11R5? 
  2046.  
  2047.     The release of new public patches by the X Consortium is announced
  2048. in the comp.windows.x.announce newsgroup.
  2049.  
  2050.     Patches themselves are available via ftp from ftp.x.org and from other
  2051. sites from which X11 is available. They are now also distributed through the
  2052. newsgroup comp.sources.x. Some source re-sellers may be including patches in
  2053. their source distributions of X11.
  2054.  
  2055.     People without ftp access can use the xstuff mail server. It now has
  2056. 26 patches for X11R5 [11/93].  Send to xstuff@x.org the Subject line
  2057.         send fixes #
  2058. where # is the name of the patch and is usually just the number of the patch.
  2059.  
  2060.     Here are a few complications:
  2061.     1) fix 5 is in four parts; you need to request "5a", "5b", "5c" and 
  2062. "5d" separately
  2063.     2) the file sunGX.uu, which was part of an earlier patch, was 
  2064. re-released with patch 7 [note: the file doesn't work with Solaris]
  2065.     3) fix 8 is in two parts: "8a" and "8b"
  2066.     4) fix 13 is in three parts: "13a", "13b", and "13c"
  2067.     5) fix 16 is in two parts: "16a" and "16b"
  2068.     6) fix 18 replaces the R5fix-test1 for the X Test Suite, which 
  2069. previously was optional
  2070.     7) fix 19 also needs PEXlib.tar.Z, which you can obtain from xstuff
  2071. by asking for "PEXlib.uu.[1234]".
  2072.     8) fix 22 is in 9 parts, "22a" through "22i"
  2073.  
  2074. The MIT Software Center, in addition to offering the entire system on tape, is
  2075. offering a new tape with public patches 1-23.  Tapes are available in 6250bpi
  2076. 9-track reel-to-reel and QIC-24 cartridge formats.  Information: +1 617 258
  2077. 8330
  2078.  
  2079. ----------------------------------------------------------------------
  2080. Subject:  59)  What is the xstuff mail-archive?
  2081.  
  2082.     The xstuff server is a mail-response program. That means that you mail
  2083. it a request, and it mails back the response.  Any of the four possible
  2084. commands must be the first word on a line.  The xstuff server reads your
  2085. entire message before it does anything, so you can have several different
  2086. commands in a single message (unless you ask for help).  The xstuff server
  2087. treats the "Subject:" header line just like any other line of the message.
  2088.  
  2089.     The archives are organized into a series of directories and
  2090. subdirectories.  Each directory has an index, and each subdirectory has an
  2091. index. The top-level index gives you an overview of what is in the
  2092. subdirectories, and the index for each subdirectory tells you what is in it.
  2093.  
  2094.     1) The command "help" or "send help" causes the server to send you a
  2095. more detailed version of this help file.
  2096.     2) if your message contains a line whose first word is "index", then
  2097. the server will send you the top-level index of the contents of the archive.
  2098. If there are other words on that line that match the name of subdirectories,
  2099. then the indexes for those subdirectories are sent instead of the top-level
  2100. index.  For example, you can say "send index fixes" (or "index fixes"). A
  2101. message that requests an index cannot request data.
  2102.     3) if your message contains a line whose first word is "send", then
  2103.     the xstuff server will send you the item(s) named on the rest of the
  2104. line. To name an item, you give its directory and its name. For example
  2105.         send fixes 1 4 8a 8b 9 
  2106. You may issue multiple send requests.
  2107.     The xstuff server contains many safeguards to ensure that it is not
  2108. monopolized by people asking for large amounts of data. The mailer is set up
  2109. so that it will send no more than a fixed amount of data each day. If the work
  2110. queue contains more requests than the day's quota, then the unsent files will
  2111. not be processed until the next day.  Whenever the mailer is run to send its
  2112. day's quota, it sends the requests out shortest-first.
  2113.     4) Some mailers produce mail headers that are unusable for extracting
  2114. return addresses.  If you use such a mailer, you won't get any response.  If
  2115. you happen to know an explicit path, you can include a line like
  2116.     path foo%bar.bitnet@mitvma.mit.edu or path bar!foo!frotz in the body
  2117.     of your message, and the daemon will use it.
  2118.  
  2119.     The xstuff server itself can be reached at xstuff@x.org.  If your
  2120. mailer deals in "!" notation, try sending to
  2121. {someplace}!mit-eddie!x.org!xstuff.
  2122.  
  2123. [based on information from the X Consortium, 8/89, 4/90.]
  2124.  
  2125. ----------------------------------------------------------------------
  2126. Subject:  60)  Where can I get X11R4 (source and binaries)?
  2127.  
  2128. Note: X11R4 is used by Motif 1.1 implementations. However, it is becoming
  2129. increasingly difficult to find in electronic form. This list has been winnowed
  2130. down as sites are found to have removed R4 sources. You may be able to find
  2131. R4 sources on machines offering X11R5 sources.
  2132.  
  2133.     Integrated Computer Solutions, Inc., ships X11R4 on half-inch, 
  2134. quarter-inch, and TK50 formats. Call 617-621-0060 for ordering information.
  2135.  
  2136.     The Free Software Foundation (617-876-3296) sells X11R4 on half-inch 
  2137. tapes and on QIC-24 cartridges.  
  2138.  
  2139.     Yaser Doleh (doleh@math-cs.kent.EDU; P.O. Box 1301, Kent, OH 44240) is
  2140. making X11R4 available on HP format tapes, 16 track, and Sun cartridges. [2/90]
  2141.  
  2142.     European sites can obtain a free X11R4 distribution from Jamie Watson,
  2143. who may be reached at chx400!pan!jw or jw@pan.uu.ch. [10/90]
  2144.  
  2145.     Non Standard Logics (+33 (1) 43 36 77 50; requests@nsl.fr) makes source
  2146. available.
  2147.  
  2148.     IXI Limited (+44 223 462 131) is selling X11R4 source on quarter-inch 
  2149. cartridge formats and on 5.25" and 3.5" floppy, with other formats available on
  2150. request. [IXI, 2/90]
  2151.  
  2152.     Virtual Technologies (703-430-9247) provides the entire X11R4 
  2153. compressed source release on a single QIC-24 quarter-inch cartridge and also on
  2154. 1.2meg or 1.44 meg floppies upon request. [Conor Cahill 
  2155. (cpcahil@virtech.uu.net) 2/90]
  2156.  
  2157.     Young Minds (714-335-1350) makes the R4 and GNU distributions available
  2158. on a full-text-indexed CD-ROM.
  2159.  
  2160. [Note that some distributions are media-only and do not include docs.]
  2161.  
  2162.     X11R4 is ftp-able from ftp.x.org; these sites are preferable, though, 
  2163. and are more direct:
  2164.  
  2165.                         Machine                  Internet      FTP
  2166.     Location            Name                     Address       Directory
  2167.     --------            -------                  --------      -------------
  2168. (2) Central USA         giza.cis.ohio-state.edu  128.146.8.61  pub/X.V11R4
  2169.     Southeast USA       uunet.uu.net             192.48.96.2   X/R4
  2170. (4) UK Janet            src.doc.ic.ac.uk         129.31.81.36  X.V11R4
  2171.     UK niftp            uk.ac.ic.doc.src                       <XV11R4>
  2172. (5) Australia           munnari.oz.au            128.250.1.21  X.V11/R4
  2173.  
  2174. The giza.cis.ohio-state.edu site, in particular, is known to have much of the
  2175. contrib stuff that can be found on ftp.x.org. 
  2176.  
  2177. The release is available to DEC Easynet sites as CRL::"/pub/X11/R4".
  2178.  
  2179. Sites in Australia may contact this address: ftp.Adelaide.EDU.AU [129.127.40.3]
  2180. and check the directory pub/X/R4. The machine shadows ftp.x.org and archives
  2181. comp.sources.x. (Mark Prior, mrp@ucs.adelaide.edu.au, 5/90)
  2182.  
  2183. A set of X11R4 binaries built by Tom Roell (roell@informatik.tu-muenchen.de) 
  2184. for the 386/ix will available from ftp.x.org in /contrib and in 
  2185. /pub/i386/X11R4 from 131.159.8.35 in Europe. Stephen Hite 
  2186. (shite@sinkhole.unf.edu) can also distribute to folks without ftp facilities 
  2187. via disks sent SASE; contact him for USmail and shipping details. [12/90] In 
  2188. addition, the binaries are available via uucp from szebra [1-408-739-1520, TB+ 
  2189. (PEP); ogin:nuucp sword:nuucp] in /usr2/xbbs/bbs/x.  In addition, the source is
  2190. on zok in /usrX/i386.R4server/. [2/91] In addition, if you are in the US, the 
  2191. latest SVR4 binary (April 15), patches, and fonts are available on 
  2192. piggy.ucsb.edu (128.111.72.50) in the directory /pub/X386, same filenames as 
  2193. above. (Please use after 6pm Pacific, as these are large files.) [5/91]
  2194.  
  2195. A set of HP 9000/800 binaries is available on hpcvaaz.cv.hp.com (15.255.72.15)
  2196. as ~ftp/pub/MitX11R4/libs.x800.Z. [2/91]
  2197.  
  2198. A set of X11R4 binaries for the NeXT 2.x have been made available by Howie Kaye
  2199. on cunixf.cc.columbia.edu
  2200.  
  2201. A set of binaries by John Coolidge (coolidge@cs.uiuc.edu) for the Mac running 
  2202. A/UX 2.0 is available from wuarchive.wustl.edu in the file
  2203. (/archive/systems/aux/X11R4/Xupdate2.tar.Z). Also in X11R4/diffs is a set of 
  2204. patches for making X11R4 with shared libraries with mkshlib.
  2205.  
  2206. A complete distribution of SCO X11R4 binaries by Baruch Cochavy 
  2207. (blue@techunix.technion.ac.il) can be found on uunet. The server is Roell's 
  2208. X386 1.1b, compiled for ET4000 based SVGA boards.
  2209.  
  2210. ----------------------------------------------------------------------
  2211. Subject:  61)  Where can I get OSF/Motif?
  2212.     
  2213.     You can obtain either OSF/Motif source or binaries from a number of 
  2214. vendors. 
  2215.     Motif 1.2.3 source is now available; it is based on X11R5.
  2216.     Motif 1.1 is based on the R4.18 Intrinsics and is finished [7/92] at 
  2217. 1.1.5.
  2218.     A conformant Motif implementation not based on OSF-derived source is
  2219. being developed by fox@crisp.demon.co.uk (Paul Fox).
  2220.     An OSF/Motif source license must be obtained from OSF before source can
  2221. be obtained from the Open Software Foundation or any value-added vendor for
  2222. any version. Call the Direct Channels Desk at OSF at 617-621-7300 for ordering 
  2223. information.
  2224.  
  2225.     Various hardware vendors produce developer's toolkits of binaries, 
  2226. header files, and documentation; check your hardware vendor, particularly if
  2227. that vendor is an OSF member. 
  2228.     In addition, independent binary vendors produce Motif toolkits for
  2229. machines for which Motif is not supported by a vendor; the kits include varied 
  2230. levels of bug-fixing and support for shared libraries and are based on widely
  2231. divergent version of Motif:
  2232.     Quest Windows (408-496-1900) sells kits for Suns, as well; 
  2233.     IXI (+44 223 462 131) offers kits for Sun3 and Sun4. 
  2234.     NSL (+33 (1) 43 36 77 50; requests@nsl.fr) offers kits for the Sun 3 
  2235. and Sun 4.
  2236.     Bluestone Consulting, Inc. (609-727-4600) offers Motif 1.1.5 & 1.2 for 
  2237. SunOS, and Motif 1.2 (X11R5) for Solaris 2.1 & 2.2.
  2238.     ICS (617-621-0060) makes several binary kits, notably for Sun, DEC.
  2239.     HP and DEC have announced support for Motif on Sun systems.
  2240.     Unipalm (+44-954-211-797) currently offers for Sun systems a Motif 
  2241. Development Kit including X11R4 and based on Motif 1.1.2. The US distributor is
  2242. Expert Object Corp (708-926-8500).
  2243.     BIM ships Motif 1.1 binaries for Suns. Shared library support is 
  2244. included. Contact Alain Vermeiren (av@sunbim.be) or Danny Backx (db@sunbim.be) 
  2245. at +32(2)759.59.25 (Fax : +32(2)759.47.95) (Belgium).
  2246.     SILOGIC (+33 61.57.95.95) ships Motif 1.2 and Motif 1.1 on Sun 
  2247. machines.
  2248.     S.I. Systems offers Motif 1.2 for Solaris 2.1; info: 1-800-755-8649 in
  2249. USA and Canada.
  2250.     Metro Link Inc. (305-970-7353, sales@metrolink.com; in Europe contact
  2251. ADNT, (33 1) 3956 5333, UniVision (UK) Ltd. (44) 628 82 22 81) ships an 
  2252. implementation of X11R4 and Motif 1.1.2 (including a shared-library 
  2253. implementation of libXm.a) for the 386/486 Unix market.  Motif 1.1.2 is 
  2254. also available for Sun Sparc based workstations. It has also announced 
  2255. Motif 1.2.3 for Solaris and Linux systems.
  2256.     in GmbH  (+49 7531 65022, gvr@in-gmbh.de) offers development and user 
  2257. kits for SunOS and Solaris.
  2258.  
  2259. ----------------------------------------------------------------------
  2260. Subject:  62)  Does Motif work with X11R4? X11R5?
  2261.  
  2262.     Motif 1.2 is based on X11R5.
  2263.     Motif 1.1, available in source form from OSF as of August 1990, uses 
  2264. the "vanilla" X11R4 Intrinsics, where "vanilla" means "with just a few
  2265. patches"; the file fix-osf which OSF distributes is obsoleted by the
  2266. Consortium's patches 15-17.  The file fix-osf-1.1.1 distributed with the
  2267. 1.1.1 version or its subsequent modification needs to be applied after fix-18, 
  2268. though.
  2269.  
  2270.     Motif 1.1.1 to 1.1.3 will work with X11R5 if X11R5 is compiled with
  2271. -DMOTIFBC; 1.1.4 and later should work with the vanilla R5, although there are 
  2272. some known new geometry-management problems.
  2273.     
  2274. ----------------------------------------------------------------------
  2275. Subject:  63)  Where can I get toolkits implementing OPEN LOOK?
  2276.  
  2277.     Sun's XView has a SunView-style API. Version 3.2 is available (7/93)
  2278. from xview.ucdavis.edu in /pub/XView/XView3.2 or ftp.x.org in
  2279. /contrib/xview3.2.
  2280.  
  2281.     XView and X binaries for the Sun 386i ("roadrunner") are available for 
  2282. ftp from svin01.win.tue.nl (131.155.70.70), directory pub/X11R4_386i.
  2283.     Supported binaries of XView 2.0 or 3.0 include: 
  2284.  
  2285. XView for non-Sun Platforms  (domestic and selected international vendors).
  2286. Several are also available from Sun; contact your local sales office.
  2287.  
  2288. Amiga        GfxBase, Inc.        1881 Ellwell Drive
  2289. (AmigaDOS)    (408) 262-1469        Milpitas, CA 95035
  2290.         Fax: (408) 262-8276
  2291.  
  2292. SGI
  2293. Sony (NEWS-OS)
  2294. IBM RS/6000
  2295. HP 9000
  2296. DECstation    UniPress Software    2025 Lincoln Highway
  2297. (Ultrix)    (908) 985-8000        Edison, NJ 08817
  2298.         Fax: (908) 287-4929
  2299.  
  2300.         UniPress Software, Ltd.        PO Box 70
  2301.         44-624-661-8850            Viking House
  2302.         Fax: 44-624-663-453        Nelson Street
  2303.                         Douglas, Isle of Man
  2304.                         United Kingdom
  2305.  
  2306. DEC VAXstation    TGV            603 Mission Street
  2307. (VMS)        (800) TGV-3440        Santa Cruz, CA 95060
  2308.         (408) 427-4366
  2309.         Fax: (408) 427-4365
  2310.  
  2311.         Unipalm Ltd.            145-147 St. Neots Road
  2312.         44-0954-211797            Hardwick
  2313.         Fax: 44-0954-211244        Cambridge CB3 7QJ
  2314.                         England
  2315.  
  2316. Intel 386    Quarterdeck Office    150 Pico Boulevard
  2317. (DOS)        Systems            Santa Monica, CA 90405
  2318.         (213) 392-9851
  2319.         Fax: (213) 399-3802
  2320.  
  2321. Intel 386    SunSoft Corporation    6601 Center Drive West
  2322. (Interactive    310-348-8649        Suite 700
  2323.  UNIX and                Los Angeles, CA  90045
  2324.  SCO UNIX)    
  2325.  
  2326. Stardent    Scripps Institute    Clinic MB-5
  2327. (Stellix OS    Fax: (619) 554-4485    10666 N. Torrey Pines Road
  2328.  and Titan OS)    Include mailstop MB-5    La Jolla, CA 92057
  2329.         By ftp: 192.42.82.8 in pub/binary/{Xview.README,XView.tar.Z}
  2330.  
  2331.     AT&T's OPEN LOOK GUI 3.0 Xt-based toolkit is now generally available 
  2332. [2/92]; contact 1-800-828-UNIX#544 for information. Binaries are produced
  2333. for SPARC systems by International Quest Corporation (408-988-8289). A version
  2334. of the toolkit is also produced under the name OLIT by Sun. 
  2335.     More recent versions of OLIT have been ported to IBM 6000 and DEC MIPS 
  2336. by both UniPress and ICS. OLIT is also available for HP from Melillo Consulting
  2337. (908-873-0075). MJM (Somerset, NJ) makes OLIT 4.0 for HP 7xx series running
  2338. HPUX 8.0, DECstations, and RS/6000s [thanks to Joanne Newbauer, 
  2339. jo@attunix.att.com, 908-522-6677.]
  2340.  
  2341.     Sun is shipping OpenWindows 3.0; contact your local sales 
  2342. representative for more details; the package includes toolkit binaries and 
  2343. header files.
  2344.  
  2345.     ParcPlace's (formerly Solbourne's) extensible C++-based Object 
  2346. Interface Library, which supports run-time selection between Open Look or 
  2347. Motif, is available from 303-678-4626. [5/92]
  2348.  
  2349. ----------------------------------------------------------------------
  2350. Subject:  64)  Where can I get other X sources? (including R5 modifications)
  2351.  
  2352.     The MIT Software Center ships the X Test Suite on tape.
  2353.  
  2354.     A multi-threaded version of Xlib based on X11R5 patch 12 is now 
  2355. available for anonymous FTP from (new version 1/93):
  2356.         DEC on gatekeeper.dec.com (16.1.0.2) in /pub/X11/contrib/mt-xlib-1.1
  2357.         MIT on ftp.x.org in /contrib/mt-xlib-1.1
  2358. Note that this source code will not become the Xlib used in X11R6, although
  2359. the Consortium is planning to make Xlib thread-safe with that release.
  2360.  
  2361.     HP has made available drivers to permit the building of the X11R5
  2362. sample server on the HP 9000 Series 700 workstations; the files are on
  2363. ftp.x.org in ~ftp/contrib/R5.HP.SRV. [8/92]
  2364.  
  2365.     The Edinburgh University Computing Service and European X User Group
  2366. have created an on-line index of public domain X software. The index is
  2367. available through gopher and provides an index of the ftp.x.org/contrib
  2368. archive, the comp.sources.x archive and various X software found around the
  2369. internet. The service holds manual pages, README files , etc which can be
  2370. browsed through. A keyword search of the manual pages is also provided.
  2371. Information: xindex@castle.edinburgh.ac.uk.
  2372.  
  2373.     User-contributed software is distributed through the newsgroup
  2374. comp.sources.x, moderated by Chris Olson (chris@imd.sterling.com); also check 
  2375. that group for posting information.
  2376.  
  2377.     Richard Hesketh (rlh2@ukc.ac.uk) has been creating a list of freely-
  2378. available X sources.  The list is stored on ftp.x.org in contrib as
  2379. x-source-list.Z. It lists the main storage locations for the program and 
  2380. international sites from which it may be ftp'ed.
  2381.  
  2382.     The machine ftp.x.org has a great deal of user-contributed software in 
  2383. the contrib/ directory; a good deal of it is present in current or earlier
  2384. versions on the X11R3, X11R4, and X11R5 contrib tapes. There are also
  2385. directories for fixes to contrib software.  The file on ftp.x.org in
  2386. contrib/0ftpxorg.dir.Z is a quick overall index of the software in that area,
  2387. provided by Daniel Lewart (d-lewart@uiuc.edu).
  2388.  
  2389.     These sites used to and may still mirror ftp.x.org and are of particular 
  2390. use for Australasia: Anonymous ftp: ftp.Adelaide.EDU.AU; ACSnet Fetchfile: 
  2391. sirius.ua.oz.
  2392.  
  2393.     The material on giza.cis.ohio-state.edu, which tends to duplicate 
  2394. the ftp.x.org archives, is also available via anonymous UUCP from osu-cis, at
  2395. TB+ and V.32 speeds.  Write to uucp@cis.ohio-state.edu (same as osu-cis!uucp)
  2396. for instructions. [the archive is now maintained by Karl Kleinpaste]
  2397.  
  2398.     A new west-coast UUCP X11 Archive is administered by Mark Snitily 
  2399. (mark@zok.uucp) and contains the full X11 distribution, the XTEST
  2400. distribution, an entire archive of comp.sources.x and other goodies.
  2401.     The machine zok has a TB+ modem which will connect to 19.2K, 2400, 
  2402. 1200 baud (in that order).  The anonymous UUCP account is UXarch with password 
  2403. Xgoodies.  The modem's phone number is 408-996-8285.
  2404.     A sample Systems (or L.sys) entry might be:
  2405.            zok Any ACU 19200 4089968285 in:--in: UXarch word: Xgoodies
  2406.     To get a current listing of the files that are available, download
  2407. the file "/usrX/ls-lR.Z".
  2408.     A full subject index of the comp.sources.x files is available in the
  2409. file "/usrX/comp.sources.x/INDEX".
  2410.     The machine has just the one modem, so please do not fetch large 
  2411. amounts of data at one sitting.
  2412. [courtesy Mark Snitily, 2/90]
  2413.  
  2414. In addition, UUNET Source Archives (703-876-5050) tracks comp.sources.x and 
  2415. provides 800MB+ of compressed programs on 6250 bpi tapes or 1/4" tapes.  It 
  2416. also mirrors ftp.x.org/contrib in its packages/X directory.
  2417.     
  2418. ----------------------------------------------------------------------
  2419. Subject:  65)! Where can I get interesting widgets?
  2420.  
  2421.     The Free Widget Foundation (FWF) library sponsored by Brian Totty 
  2422. (totty@cs.uiuc.edu) is now [2/93] available on a.cs.uiuc.edu (128.174.252.1) 
  2423. in pub/fwf-v3.53.shar.Z. The set of widgets there is intended to form the basis
  2424. for future contributions. To be added to the discussion list, send to
  2425. listserv@cs.uiuc.edu a message saying "subscribe <listname> <your-full-name>"
  2426. where <listname> is one of free-widgets-announce, free-widgets-development, or 
  2427. free-widgets-bugs.  
  2428.     An object like the Windows "combo box" is part of the Xm++ class 
  2429. library.
  2430.     Harald Albrecht's (albrecht@igpm.rwth-aachen.de) Motif implementation 
  2431. of the ComboBox object from MSWindows is available on 
  2432. ftp.informatik.rwth-aachen.de (137.226.112.172) in pub/packages/ComboBox and
  2433. on ftp.x.org. Version 1.20b became available 2/94.
  2434.     A library by Jean Michel Leon (leon@sophia.inria.fr) which adds 
  2435. "inset" facilities to Xt is available on ftp.x.org in 
  2436. contrib/insetlib-0.2.tar.gz. 
  2437.     The XmBoss widget by Doyle Davidson (doyle@ps.atl.sita.int) is a
  2438. generic Motif 1.1 layout manager that implements geometry  management through
  2439. application callbacks; sources are on ftp.x.org.
  2440.     The Xew widget set by Markku Savela (savela@tel.vtt.fi) contains 
  2441. widgets for data representation.  Version 1.4 [5/93] is on ftp.x.org in 
  2442. contrib/Xew-1.5.tar.Z.
  2443.     Peter Ware's Xo "Open Widget" set, which has Motif-like functionality, 
  2444. is on archive.cis.ohio-state.edu as pub/Xo/Xo-2.1.tar.Z [8/92].
  2445.     The AthenaTools Plotter Widget Set Version 6-beta [7/92] maintained by
  2446. Peter Klingebiel (klin@iat.uni-paderborn.de) includes many graph and plotting 
  2447. widgets; a copy is on ftp.x.org in plotter.v6b.tar.Z, plotter.doc.tar.Z,
  2448. plotter.afm.tar.Z, and plotter.README. The latest versions may in fact be on
  2449. ftp@uni-paderborn.de (131.234.2.32) in /unix/tools, which appears to contain
  2450. version 6.0.7.
  2451.     An advance version of Marc Quinton's Motif port of the FWF MultiList 
  2452. widget is in ftp.stna7.stna.dgac.fr:pub/MultiList.tar.Z [143.196.9.31].
  2453.     Additional widgets are available on the contrib/ portion of the X11R4
  2454. tapes; these include the Xcu set.
  2455.     Paul Johnston's (johnston@spc5.jpl.nasa.gov) X Control Panel widget set
  2456. emulates hardware counterparts; sources are on ftp.x.org in Xc-1.3.tar.Z.
  2457.     O'Reilly Volume 4, Doug Young's book, the Asente/Swick book, and Jerry 
  2458. Smith's "Object-oriented Programming with the X Window System Toolkits" all 
  2459. include details on writing widgets and include several useful widgets; sources 
  2460. are typically on ftp.x.org and/or UUNET.  Doug Young's book, in particular,
  2461. contains a version of a tree-like layout object (root and multiple leaves).
  2462.     The Dirt interface builder includes the libXukc widet set which extends
  2463. the functionality of Xaw. 
  2464.     A graph widget and other 2D-plot and 3D-contour widgets by Sundar 
  2465. Narasimhan (sundar@ai.mit.edu) are available from ftp.ai.mit.edu as
  2466. /pub/users/sundar/graph.tar.Z. The graph widget has been updated [3/91]
  2467. with documentation and histogram capabilities.
  2468.     A graph widget is available from ftp.stna7.stna.dgac.fr in
  2469. pub/Graph.tar.Z; it uses a segment list for drawing and hence supports a zoom
  2470. operation.
  2471.     Ken Lee's Xm widget (demo) that uses Display PostScript to draw labels 
  2472. at a non-horizontal angle is on ftp.x.org in contrib/dpslabel.tar.Z.
  2473.     The Table widget (works like troff TBL tables) is available in several
  2474. flavors, one of which is with the Widget Creation Library release 
  2475. (ftp.x.org:/contrib/Wcl-2.5.tar.Z).
  2476.     Bell Communications Research has developed a Matrix widget for complex
  2477. application layouts; it's on ftp.x.org in contrib/Xbae-widgets-3.8.tar.Z [2/93. 
  2478. The distribution also includes a "caption" widget to associate labels with 
  2479. particular GUI components. (7/92)
  2480.     Dan Connolly's (connolly@convex.COM ??) XcRichText interprets RTF data;
  2481. it's on ftp.x.org as contrib/XcRichText-1.2.tar.Z.
  2482.     The XmGraph Motif-based graphing widget is on iworks.ecn.uiowa.edu in
  2483. /comp.hp/GUI_classic/XmGraph.tar.Z although it may not be stable.
  2484.     A TeX-style Layout widget by Keith Packard is described in the 
  2485. proceedings of the 7th X Technical Conference (O'Reilly X Resource volume 5);
  2486. source is available on ftp.x.org contrib/Layout.tar.Z.
  2487.  
  2488.     A version of Lee Iverson's (leei@McRCIM.McGill.EDU) image-viewing tool
  2489. is available as contrib/vimage-0.9.3.tar.Z on ftp.x.org. The package also 
  2490. includes an ImageViewPort widget and a FileDialog widget. [12/91;5/92] 
  2491.     An MPEG viewer by Jan Newmarch (jan@ise.canberra.edu.au) is on
  2492. ftp.x.org in mpeg_wdgt2.0b.tar; it requires Motif.
  2493.     In addition, the PEXt toolkit by Rich Thomson (rthomson@dsd.es.com) is 
  2494. available on ftp.x.org as PEXt.tar.Z; it includes a PEX widget making it 
  2495. easier to use PEX in Xt-based programs.
  2496.     A Motif port of the Xaw clock widget is in ftp.stna7.stna.dgac.fr
  2497. in pub/Clock.tar.Z.
  2498.     A modification of the Xaw ScrollBar widget which supports the arrowhead
  2499. style of other toolkits is on ftp.x.org in contrib/Xaw.Scrollbar.mta.Z.
  2500.  
  2501.     A release of the R5 Xaw widgets with a 3D visual appearance by Kaleb
  2502. Keithley (now kaleb@x.org) is available on ftp.x.org in
  2503. contrib/Xaw3d/R5/Xaw3d-0.6.tar.Z. The library, which is binary-compatible
  2504. with Xaw, implements a 3D subclass which handles the extra drawing.
  2505.  
  2506.     The Andrew User Interface System supplies an extensive collection of
  2507. widgets including full-blown editors for text, rasters, figures, tables, and 
  2508. so on.
  2509.  
  2510. Also:
  2511.     The Xmt "Motif Tools", Dovetail Systems's shareware library of 9 
  2512. widgets and many convenience functions, is available from ftp.x.org:contrib 
  2513. and ftp.ora.com:/pub/xbook/Xmt in xmt-README and xmt-1.0.tar.Z.
  2514.     The Xtra XWidgets set includes widgets for pie and bar charts, XY 
  2515. plots, Help, spreadsheets, data entry forms, and line and bar graphs.  Contact 
  2516. Graphical Software Technology at 310-328-9338 (info@gst.com) for information.
  2517.     The XRT/graph widget, available for Motif, XView and OLIT, displays
  2518. X-Y plots, bar and pie charts, and supports user-feedback, fast updates and
  2519. PostScript output. Contact KL Group Inc. at 416-594-1026 (info@klg.com).
  2520.     The Acme Widget Set from EDB (212-978-8822) includes a 2D graph widget
  2521. that can be configured like a stripchart.
  2522.     A set of data-entry widgets for Motif is available from Marlan 
  2523. Software, 713-467-1458 (gwg@world.std.com).
  2524.     A set of graph widgets is available from Expert Database Systems
  2525. (212-370-6700).
  2526.     A set of OSF/Motif compound widgets and support routines for 2D
  2527. visualization is available from Ms Quek Lee Hian, National Computer Board,
  2528. Republic of Singapore; Tel : (65)7720435; Fax : (65)7795966; 
  2529. leehian@iti.gov.sg, leehian@itivax.bitnet.
  2530.     The ICS Widget Databook includes a variety of control widgets and 
  2531. special-purpose widgets, available on a variety of platforms.  Information: 
  2532. 617-621-0060, info@ics.com.
  2533.     Information on graphing tools may be obtained from info@TomSawyer.com 
  2534. (+1-510-848-0853, fax: +1-510-848-0854).
  2535.     in GmbH (+49 7531 65022, gvr@in-gmbh.de) offers the "grinx" widget for
  2536. drawing vector graphics with dynamic attributes such as blinking and rotation.
  2537.  
  2538. ----------------------------------------------------------------------
  2539. Subject:  66)  Where can I get a good file-selector widget?
  2540.  
  2541.     The Free Widget Foundation set offers a FileSelector widget, with 
  2542. separate directory path and file listing windows, and the FileComplete, which
  2543. has emacs-style file completion and ~ expansion. 
  2544.     Other available file-requestor widgets include the XiFileSelector from 
  2545. Iris Software's book, the xdbx file-selector extracted by David Nedde 
  2546. (daven@ivy.wpi.edu), and the FileNominator from the aXe distribution.
  2547.     The GhostView, Xfig, and vimage packages also include file-selector 
  2548. widgets.
  2549.  
  2550. ----------------------------------------------------------------------
  2551. Subject:  67)  Where can I find a hypertext widget in source code?
  2552.  
  2553.     A hypertext widget was posted to comp.sources.x.  It can be found in
  2554. volume 16 of the archives at ftp.uu.net under the name "hman".  The
  2555. distribution includes a hypertext widget with both Athena and Motif
  2556. compatability (set at compile-time) and hman, a Motif-based man reference page
  2557. reader that uses the widget to look up other man topics.  [Joe Shelby
  2558. (shelby@dirac.physics.jmu.edu); 6/93]
  2559.  
  2560. ----------------------------------------------------------------------
  2561. Subject:  68)  What widget is appropriate to use as a drawing canvas?
  2562.  
  2563.     Some widget sets have a widget particularly for this purpose -- a
  2564. WorkSpace or DrawingArea which doesn't display anything but lets your Xt 
  2565. application know when it has been re-exposed, resized, and when it has received
  2566. user key and mouse input. 
  2567.     The best thing to do for other widget sets -- including the Athena set 
  2568. -- is to create or obtain such a widget; this is preferable to drawing into a 
  2569. core widget and grabbing events with XtAddEventHandler(), which loses a number 
  2570. of benefits of Xt and encapsulation of the functionality .  
  2571.     The publicly-available programs xball and xpic include other versions. 
  2572. The Display widget in the XG library (libXG-2.0.tar.Z on ftp.x.org) provides a 
  2573. generic way of drawing graphics in a widget.
  2574.     The Athena Widget manual (mit/doc/Xaw/Template in the R5 distribution) 
  2575. includes a tutorial and source code to a simple widget which is suitable for 
  2576. use. 
  2577.     The Free Widget Foundation set contains a Canvas widget.
  2578.  
  2579. ----------------------------------------------------------------------
  2580. Subject:  69)  What is the current state of the world in X terminals?
  2581.  
  2582. Jim Morton (jim@applix.com) posts quarterly to comp.windows.x a list of 
  2583. manufacturers and terminals; it includes pricing information. 
  2584.  
  2585. ----------------------------------------------------------------------
  2586. Subject:  70)  Where can I get an X server with a touchscreen or lightpen?
  2587.  
  2588.     Labtam (+61 3 587 1444, fax +61 3 580 5581) offers a 19" Surface 
  2589. Acoustic Wave touch-screen option on its Xengine terminals.
  2590.     Tektronix (1-800-225-5434) provides an X terminal with the Xtouch 
  2591. touch-screen. This terminal may also be resold through Trident Systems
  2592. (703-273-1012).
  2593.     Metro Link (305-970-7353) supports the EloGraphics Serial Touch Screen 
  2594. Controllers.
  2595.  
  2596. ----------------------------------------------------------------------
  2597. Subject:  71)  Where can I get an X server on a PC (DOS or Unix)?
  2598.  
  2599.     X11R5 already provides a server to many 386/486 *Unixes* with 
  2600. support for many of the popular video graphics adapters; and for other 
  2601. non-MSDOS PCs you can obtain a server from these sources:
  2602.  
  2603.     XFree86 (formerly X386 1.2E) is an enhanced version of X386 1.2, which 
  2604. was distributed with X11R5; it includes many bug fixes, speed improvements, and
  2605. other enhancements. Source for version 2.0 [10/93] is on ftp.x.org in 
  2606. pub/contrib, ftp.physics.su.oz.au in /XFree86, and ftp.win.tue.nl in 
  2607. /pub/XFree86. In addition, binaries are on ftp.physics.su.oz.au, and 
  2608. ftp.win.tue.nl among other systems. Info: x386@physics.su.oz.au.
  2609.     Note: this package obsoletes Glenn Lai's Speedup patches for an 
  2610. enhanced X11R5 server for 386 UNIXes with ET4000 boards (SpeedUp.tar.Z on 
  2611. ftp.x.org).
  2612.  
  2613.     Metro Link Inc. (305-970-7353, sales@metrolink.com; in Europe contact
  2614. ADNT, (33 1) 3956 5333) ships an implementation of X11R4 for the 386/486 Unix
  2615. market.
  2616.  
  2617.     SGCS offers X386 Version 1.3, based on Thomas Roell's X11R5 two-headed
  2618. server, in binary and source form. Information: 408-255-9665, info@sgcs.com.
  2619.  
  2620.     ISC, SCO, UHC, and other well-known operating-system vendors typically
  2621. offer X servers.
  2622.  
  2623.     For MSDOS PCs:
  2624.  
  2625. Daniel J. McCoy (mccoy@gothamcity.jsc.nasa.gov) has started posting monthly a 
  2626. list of non-UNIX servers for PCs, Macs, and Amigas; it includes pricing 
  2627. information. The current copy is kept on ftp.x.org in contrib as 
  2628. XServers-NonUNIX.txt.Z. 
  2629.  
  2630. An article on PC X servers appears in the March 2, 1992 Open Systems Today.
  2631.  
  2632.     Also of possible use:
  2633.  
  2634.     Net-I from Programit (212-809-1707) enables communication among 
  2635. DOS, OS/2 and Unix machines and can be used to display PC sessions on your
  2636. Unix X display.
  2637.  
  2638.  
  2639. ----------------------------------------------------------------------
  2640. Subject:  72)  Where can I get an X server on a Macintosh running MacOS?
  2641.  
  2642.     eXodus from White Pine Software (603-886-9050) runs on any Mac with
  2643. at least 1MB of memory and supports intermixing of X and Mac windows and
  2644. also supports the SHAPE extension. Version 5.0 became available 10/93.
  2645.  
  2646.     Apple's MacX runs on MacPlus or newer machines with >= 2MB of memory
  2647. and system software 6.0.4 or later. Version 1.1 is fully X11R4-based.  It 
  2648. supports full ICCCM-compatible cut and paste of text AND graphics between the 
  2649. Macintosh and X11 worlds, the SHAPE extension (including SHAPEd windows on the 
  2650. Macintosh desktop), an optional built-in ICCCM-compliant window manager, X11R4 
  2651. fonts and colors, a built-in BDF font compiler, and built-in standard 
  2652. colormaps. Upgrades to MacX are available by ftp from aux.support.apple.com. 
  2653. Info: 408-996-1010.  
  2654.     [Note: MacX is also the name of a vax-mac xmodem transfer utility.]
  2655.  
  2656.     Machten sells a MacOS X server based on R4 and also a Mach 
  2657. implementation for the Macintosh, including X and Motif support.
  2658.  
  2659.     Also: 
  2660.  
  2661.     Liken (1-800-245-UNIX or info@qualix.com) software enables monochrome
  2662. 68000 Mac applications to run on a SPARC system running X. 
  2663.     Xport (1-800-245-UNIX (415-572-0200) or xport@qualix.com) enables Mac 
  2664. applications to display on an X-based workstation by turning the Mac into an X 
  2665. client. [Note: there are questions on whether this product is still available.]
  2666.     Intercon has a product called Planet-X which enables Mac applications
  2667. to display on an X server.
  2668.  
  2669. ----------------------------------------------------------------------
  2670. Subject:  73)  Where can I get X for the Amiga?
  2671.  
  2672.     The new Amiga 3000 machines offer an X server and OPEN LOOK tools and
  2673. libraries on a full SVR4 implementation.
  2674.  
  2675.         GfxBase, Inc. provides "X11 R4.1" for the AmigaDos computer; it 
  2676. contains X11R4 clients, fonts, etc., and a Release 4 color server. An optional 
  2677. programmer's toolkit includes the header files, libraries, and sample programs.
  2678. Info from GfxBase, 408-262-1469. [Dale Luck 
  2679. (uunet!{cbmvax|pyramid}!boing!dale); 2/91]
  2680.  
  2681. ----------------------------------------------------------------------
  2682. Subject:  74)  Where can I get a serial-based X server for connecting from home?
  2683.  
  2684.     Until LBX (q.v.) is more common, an option includes NCD's PC-XView
  2685. with PC-Xremote.
  2686.     sxpc 1.2 (by Robert Andrew Ryan (rr2b+@andrew.cmu.edu)) is a simple X
  2687. protocol compressor. Sources are on atk.itc.cmu.edu (in sxpc-1.0.shar.Z), or
  2688. from ftp.x.org (in contrib/sxpc-1.2.shar.Z)
  2689.  
  2690. ----------------------------------------------------------------------
  2691. Subject:  75)  Where can I get a fast X server for a workstation?
  2692.  
  2693.     The R5 server should be among the fastest available for most machines.
  2694.  
  2695.     Sun sells a "Direct Xlib" product which improves rendering for 
  2696. applications running on the same machine as the X server; the replacement Xlib
  2697. library accesses graphics hardware directly using Sun's Direct Graphics Access 
  2698. (DGA) technology.
  2699.  
  2700. Several companies are making hardware accellerator boards:
  2701.  
  2702.     Dupont Pixel Systems (302-992-6911), for Sun.
  2703.  
  2704.     Megatek's (619-455-5590) X-cellerator board for the Sun 3 and Sun 4 is 
  2705. based on the TI 34020; the company claims performance improvements of 5x to 
  2706. 10x over the sample X11R3 server.
  2707.  
  2708. ----------------------------------------------------------------------
  2709. Subject:  76)  Where can I get a server for my high-end Sun graphics board?
  2710.  
  2711.         Takahashi Naoto (Electrotechnical Laboratory, ntakahas@etl.go.jp) has 
  2712. modified the X11R5 server to support the Sun CG8, CG9, and CG12 boards.  
  2713. The files are on ftp.x.org in contrib/Xsun24-3.[01].tar.Z.  Note that both 
  2714. files are necessary to build Xsun24-3.1.
  2715.  
  2716.     The R5 Xsun Multi-screen server is a general purpose replacement for
  2717. the MIT server/ddx/sun layer; it supports multiple framebuffers of the same
  2718. type and implements several other features above the MIT implementation.
  2719. Available on ftp.x.org in the file contrib/R5.Xsun.multi-screen.tar.Z. [Kaleb 
  2720. Keithley, now kaleb@x.org, 12/91; the file was updated 24 Mar 1993.]
  2721.  
  2722. ----------------------------------------------------------------------
  2723. Subject:  77)  Where can I get an "X terminal" server for my low-end Sun 3/50?
  2724.  
  2725.     Seth Robertson (seth@ctr.columbia.edu) has written Xkernel; the current
  2726. version [1.4 as of 8/91, 2.0 expected RSN] is on sol.ctr.columbia.edu 
  2727. [128.59.64.40] in /pub/Xkernel.gamma. It turns a Sun 3/50 into a pseudo- X 
  2728. terminal; most of the overhead of the operating system is side-stepped, so it 
  2729. is fairly fast and needs little disk space.
  2730.     A similar approach is to run the regular X server by making /etc/init
  2731. a shell script which does the minimal setup and then invokes Xsun, like this
  2732. example script from mouse@larry.mcrcim.mcgill.EDU:
  2733.  
  2734. #! /bin/sh
  2735. exec >/dev/console 2>&1
  2736. /etc/fsck -p /dev/nd0
  2737. case $? in
  2738.      0)    ;;
  2739.      4)    /etc/reboot -q -n
  2740.          ;;
  2741.      8)    echo ND fsck failed - get help
  2742.          /etc/halt
  2743.          ;;
  2744.      12)    echo Interrupted
  2745.          /etc/reboot
  2746.          ;;
  2747.      *)    echo Unknown error in reboot fsck - get help
  2748.          /etc/halt
  2749.          ;;
  2750. esac
  2751. /bin/dd if=/tmp-fs of=/dev/nd2 bs=512 count=128 >/dev/null 2>&1
  2752. /etc/mount /dev/nd2 /tmp
  2753. /etc/ifconfig le0 netmask 255.255.255.0 broadcast 132.206.41.255
  2754. /etc/mount -o ro apollo:/u2/x11/lib /local/lib/X11
  2755. /etc/route add default 132.206.41.1 1 >/dev/null
  2756. set `/etc/ifconfig le0`
  2757. exec /Xsun -once -multidisp -mux -query \
  2758.     `(sh -vn </local/lib/X11/xdm-servers/$2 2>&1)`
  2759.  
  2760. ----------------------------------------------------------------------
  2761. Subject:  78)  What terminal emulators other than xterm are available?
  2762.  
  2763.     People from PCS have rewritten xterm from scratch using a multi-widget
  2764. approach that can be used by applications. Emu supports features like color,
  2765. blinking text/cursors. Emulations can be added on the fly; one emulation
  2766. provided is for the Vt220. A version is on the R5 contrib tape; the newest
  2767. release is on ftp.x.org [10/93] in contrib/emu.tar.gz.  For more information,
  2768. contact emu@pcs.com.
  2769.  
  2770.     A set of modifications for color support to xterm is on ftp.x.org in 
  2771. xterm_color.diffs.Z.
  2772.  
  2773.     mxterm, a Motif-based xterm is available from the Paderborner 
  2774. ftp-Server ftp@uni-paderborn.de (131.234.2.32), file 
  2775. /unix/X11/more_contrib/mxterm.tar.Z. A version is also on ftp.x.org, as
  2776. is apparently a set of color modifications.
  2777.  
  2778.     The Color Terminal Widget provides ANSI-terminal emulation compatible
  2779. with the VTx00 series; a version is on ftp.x.org in contrib/CTW-1.1.tar.Z. A
  2780. Motif version is on ftp.stna7.stna.dgac.fr in pub/Term-1.0.tar.Z.
  2781.     
  2782.     kterm 4.1.2 is an X11R4-based vt100/vt102 (and Tektronix 4014) terminal
  2783. emulator that supports display of Chinese, Japanese, and Korean text (in VT 
  2784. mode).  Also supported are: ANSI color sequences, multi-byte word selection, 
  2785. limited Compound Text support, and tab and newline preservation in selections.
  2786. kterm 4.1.2 is also available from these anonymous ftp sites:
  2787.     clr.nmsu.edu:pub/misc/kterm-4.1.2.tar.Z  [128.123.1.14]
  2788.     ftp.x.org:contrib/kterm-4.1.2.tar.Z  
  2789.     kum.kaist.ac.kr:pub/unix/Xstuffs/kterm-4.1.2.tar.Z  [137.68.1.65]
  2790. [courtesy of Mark Leisher <mleisher@nmsu.edu> ]
  2791.     kterm-5.2.0.tar.gz is now on ftp.x.org [1/94].
  2792.  
  2793.     mterm, by mouse@larry.McRCIM.McGill.EDU, is an X terminal emulator
  2794. which includes ANSI X3.64 and DEC emulation modes.  mterm can be had by ftp to 
  2795. larry.mcrcim.mcgill.edu (132.206.1.1), in X/mterm.src/mterm.ball-o-wax.
  2796.  
  2797.     color_xterm is available from ftp.x.org.
  2798.  
  2799.     Cxterm is a Chinese xterm, which supports both GB2312-1980 and the 
  2800. so-called Big-5 encoding.  Hanzi input conversion mechanism is builtin in 
  2801. cxterm.  Most input methods are stored in external files that are loaded at run
  2802. time.  Users can redefine any existing input methods or create their own ones.
  2803. The X11R5 cxterm is the rewritten of cxterm (version 11.5.1) based on X11R5 
  2804. xterm; it is in the R5 contrib software.  [thanks to Zhou Ning 
  2805. <zhou@tele.unit.no> and Steinar Bang <uunet!idt.unit.no!steinarb>.]
  2806.  
  2807.     XVT is available on ftp.x.org's contrib in xvt-1.0.tar.Z and 
  2808. xvt-1.0.README. It is designed to offer xterm's functionality with lower swap 
  2809. space and may be of particular use on systems driving many X terminals. A
  2810. second version, 2.0, is on unix.hensa.ac.uk in misc/unix/xvt/xvt-2.0.tar.Z
  2811. (see also xvt-2.0.patch[12]).
  2812.  
  2813.     x3270 is in X11R5 contrib/.
  2814.  
  2815.     The typescript application and inset in the Andrew User Interface
  2816. System offers a shell script interface.  It does not provide curses support,
  2817. but does permit general cut/copy/paste to construct commands or extract a
  2818. portion of the log.
  2819.  
  2820.     hanterm (2.0), by jksong@cosmos.kaist.ac.kr, is an xterm modified to
  2821. support Hangul (Korean writing system) input/output.  It's available at
  2822. several Korean archives(cair.kaist.ac.kr,kum.kaist.ac.kr,etc) and
  2823. seoul.caltech.edu in the US. This version makes obsolete an older version not
  2824. based on xterm.
  2825.     Another experimental hanterm implementation, hanterm (3.0 alpha), is
  2826. underway by Chang Hyeong-Kyu at chk@ssp.etri.re.kr; it was written to support
  2827. a 3-byte Hangul code (dictionary ordered), which can compose all possible
  2828. Hangul characters.
  2829.  
  2830. Also:
  2831.     IBM sells a 3270 emulator for the RS/6000 (part #5765-011); it's based
  2832. on Motif. 
  2833.     
  2834.     Century Software (801-268-3088) sells a VT220 terminal emulator for X. 
  2835. VT102, Wyse 50 and SCO Color Console emulation are also available. 
  2836.  
  2837.     Grafpoint's TGRAF-X provides emulation of Tektronix 4107, 4125, and 
  2838. 42xx graphics terminals; it's available for most major platforms. Information
  2839. (inc. free demo copies): 800-426-2230; Fax. 408-446-0666; uunet!grafpnt!sales.
  2840.  
  2841.     IXI's X.deskterm, a package for integrating character-based 
  2842. applications into an X environment, includes a number of terminal-emulation
  2843. modules. Information: +44 (0223) 462131. [5/90]
  2844.  
  2845.     Pericom produces Teem-X, a set of several emulation packages for a
  2846. number of Tek, DEC, Westward, and Data General terminals. The software runs on
  2847. Sun 3, Sun 4, Apollo, DEC, ISC, IBM/AIX. Information: US: 609-895-0404, 
  2848. UK: +44 (0908) 560022. [5/90]
  2849.  
  2850.     SCO's SCOterm (info@sco.COM), part of its Open Desktop environment, is
  2851. a Motif-compliant SCO ANSI color console emulator.
  2852.  
  2853. ----------------------------------------------------------------------
  2854. Subject:  79)  Does xterm offer colored text or a blinking cursor?
  2855.  
  2856.     No; these features are not offered by the xterm program.  However, 
  2857. several of the emulators mentioned above do offer these features; the list is 
  2858. partial:
  2859.     - mterm, color-xterm, CTW and emu support colored text
  2860.     - mterm and emu support blinking text
  2861.     - mterm and emu support block and underline text cursors
  2862.     - emu supports a blinking text cursor 
  2863.  
  2864. [Thanks to Michael Elbel (me@dude.pcs.com); 10/93]
  2865.  
  2866. ----------------------------------------------------------------------
  2867. Subject:  80)! Where can I get an X-based editor or word-processor?
  2868.  
  2869.     You can ftp a version of GNU Emacs, the extensible, customizable, 
  2870. self-documenting, real-time display editor, including X11 support, from
  2871. prep.ai.mit.edu [18.71.0.38]:/pub/gnu/. Version 19 has some mouse/menu support.
  2872.     
  2873.     Epoch is a modified version of Gnu Emacs (18) with additional 
  2874. facilities useful in an X environment. Current sources are on cs.uiuc.edu 
  2875. (128.174.252.1) in ~ftp/pub/epoch-files/epoch; the current [3/92] version is 
  2876. 4.0. [In Europe, try unido.informatik.uni-dortmund.de].  There are two 
  2877. subdirectories:  epoch contains the epoch source, and gwm contains the source 
  2878. to the programmable window manager GWM, with which epoch works well.] 
  2879. You can get on the Epoch mailing list by sending a request to 
  2880. epoch-request@cs.uiuc.edu.
  2881.  
  2882.     Lucid Emacs is a version of GNU Emacs derived from an early version of
  2883. Emacs version 19.  It currently requires X Windows to run;  X support is
  2884. greatly enhanced over GNU Emacs version 18, including support for multiple X
  2885. windows, input and display of all ISO-8859-1 (Latin1) characters, Zmacs/Lispm
  2886. style region highlighting, a customizable Motif-like menubar, more powerful
  2887. keymap support, flexible text attributes, support on regional and screen-local
  2888. basis through X resources and/or lisp, and support for the X11 selection
  2889. mechanism. Lucid Emacs is free; the latest version (9/93) is 19.8, and is
  2890. available from labrea.stanford.edu (36.8.0.112) in the pub/gnu/lucid directory.
  2891.  
  2892.     The Andrew system on the X11 contrib tapes has been described as one of
  2893. the best word-processing packages available. It supports word processing with 
  2894. multi-media embedded objects: rasters, tables/spread sheets, drawings, style 
  2895. editor, application builder, embedded programming language, &c. Release 5.1 
  2896. became available 2 June 92.  [Fred Hansen (wjh+@ANDREW.CMU.EDU)]
  2897.     You may be able to use the Remote Andrew Demo service to try this 
  2898. software; try "finger help@atk.itc.cmu.edu" for help.
  2899.  
  2900.     The InterViews C++ toolkit contains a WYSIWIG editor called Doc; it 
  2901. saves and loads files in a LaTeX-*like* format (not quite LaTeX).  The package 
  2902. can also import idraw-PostScript drawings.
  2903.  
  2904.     aXe (by J.K.Wight@newcastle.ac.uk), a multi-buffer, multi-window text
  2905. editor based around the Xaw Text Widget, is available on ftp.x.org and
  2906. arjuna.newcastle.ac.uk (128.240.150.1) as aXe-6.0.tar.Z (also get the patch
  2907. to 6.1) [1/94].  aXe offers a hypertext help system and extension via Tcl.
  2908.  
  2909.     TED is a simple Motif-based text editor; it is a wrapper around the 
  2910. Motif text widget which offers search/replace, paragraph formatting, and 
  2911. navigation features. TED is available from ftp.eos.ncsu.edu (152.1.9.25) as 
  2912. /pub/bill.tar.Z; here are also executables there.
  2913.  
  2914.     Point, by crowley@unmvax.cs.unm.edu (Charlie Crowley), is Tcl/Tk-based
  2915. and offers dyanimic configuration and programming in the Tcl macro language.
  2916. The editor is available from unmvax.cs.unm.edu (129.24.16.1) as
  2917. pub/Point/point1.1-tar.Z.
  2918.  
  2919.     asedit, by Andrzej Stochniol (astoch@ic.ac.uk) is on ftp.x.org in 
  2920. contrib/asedit.tar.Z. It is a simple text editor built around the Motif Text 
  2921. widget. Version 1.2 was released 10/93.
  2922.  
  2923.     jed is available from rhino.cis.vutbr.cs in pub/software/czech.
  2924.  
  2925.     xcoral is on ftp.inria.fr; it also has bindings similar to emacs and 
  2926. has a built-in browser for C and C++ code. A version is also on
  2927. ftp.Uni-Oldenburg.DE:pub/unix/appl/edit/xcoral-1.72.tar.Z.
  2928.  
  2929.     The powerful "sam" editor by Rob Pike is split into a host portion and 
  2930. a front-end graphics portion, which now has an X implementation.  sam is now 
  2931. available by anonymous ftp from research.att.com, in dist/sam/bundle.Z.  Watch 
  2932. that space for updated versions.  There is a mailing list for sam users; 
  2933. requests to <sam-fans-request@hawkwind.utcs.toronto.edu>. A set of extensions
  2934. which augment the mouse activity with the keyboard is available from 
  2935. uxc.cso.uiuc.edu in pub/sam/samx2.shar.Z. [5/93]
  2936.  
  2937.     textedit is part of Sun's OpenWindow's DeskSet and the public XView
  2938. distribution.
  2939.  
  2940.     The vi-like-microemacs editor VILE supports a pure-X mode, in which
  2941. it operates much like vi running in an xterm window. Version 3.65 is available
  2942. on ftp.cayman.com in pub/vile.
  2943.  
  2944.     NEdit 2.0 is a Motif-based text editor. Sources are on ftp.x.org
  2945. and fnpspb.fnal.gov. Information: edel@fnal.gov.
  2946.  
  2947.     BETH is a Browsing and Editing Tcl Hypertool available from
  2948. harbor.ecn.purdue.edu in /pub/tcl/code/beth3.0.tar.gz. Info:
  2949. svoboda@ece.cmu.edu (David Svoboda)
  2950.  
  2951.     A calendar/rolodex program from mengel@dcdmwm.fnal.gov (Marc Mengel)
  2952. can browse and edit other colon-separated field files. It requires Tk.
  2953.  
  2954.     The DGC Tools, on harbor.ecn.purdue.edu in
  2955. pub/tcl/code/dgctools-0.2.tar.Z, include Tke, a TclX/Tk-based
  2956. multi-window X11 text editor.  Info:  dave_clemans@mentorg.com (Dave Clemans)
  2957.  
  2958.     The js tools, on harbor.ecn.purdue.edu in
  2959. pub/tcl/code/jstools-tk3.2v1.0.tar.Z and on princeton.edu in
  2960. pub/js/jstools-tk3.2v1.0.tar.Z, include a extensible text editor. Info: Jay
  2961. Sekora (js@princeton.edu)
  2962.  
  2963.     Mxedit, a fully functional Tk based editor based on a stand-alone Tk
  2964. edit widget, is on harbor.ecn.purdue.edu in pub/tcl/code/mxedit.2.1.tar.Z.
  2965. and parcftp.xerox.com in pub/mxedit/mxedit.2.1.tar.Z.  Info:
  2966. welch@parc.xerox.com (Brent Welch)
  2967.  
  2968. [thanks in part to Larry W. Virden (lvirden@cas.org)]
  2969.  
  2970. Also:
  2971.  
  2972.     Elan Computer Group (Mountain View, CA; 415-964-2200) has announced the
  2973. Avalon Publisher 2.0, an X11/OPEN LOOK WYSIWYG electronic publishing system.
  2974.  
  2975.     FrameMaker and FrameWriter are available as X-based binary products for
  2976. several machines. Frame is at 800-843-7263 (CA: 408-433-3311).
  2977.  
  2978.     WX2 (formerly InDepthEdit) is available from Non Standard Logics 
  2979. (+33 (1) 43 36 77 50; requests@nsl.fr).
  2980.  
  2981.     Buzzwords International Inc. has an editor called 'Professional Edit' 
  2982. that runs under X/Motif for various platforms.  Info: +1-314-334-6317.
  2983.  
  2984.     DECwrite is available from DEC for some DEC hardware and SunWrite is
  2985. available from Sun.
  2986.  
  2987.     IslandWrite will soon be available from Island Graphics (415-491-1000) 
  2988. (info@island.com) for some HP & Apollo platforms.
  2989.  
  2990.     Interleaf is currently available from Interleaf (800-241-7700, 
  2991. MA: 617-577-9800) on all Sun and DEC platforms; others are under development.
  2992.  
  2993.     The Applixware office integration tools from Applix (1-800-8APPLIX, 
  2994. MA: 508-870-0300) include a multi-font WYSIWG document composer; for several 
  2995. systems.
  2996.  
  2997.     ArborText, Inc. provides an X11 version of its Electronic Publishing 
  2998. program called "The Publisher". The Publisher is available on Sun, HP and 
  2999. Apollo workstations. Contact Arbortext at 313-996-3566. [5/90]
  3000.  
  3001.     Iris Computing Laboratories offers the "ie" editor. Info:  
  3002. +1-505-988-2670 or info@spectro.com.
  3003.  
  3004.     BBN/Slate from BBN Software Products includes a menu-driven word
  3005. processor with multiple fonts and style sheets.  It supports X on
  3006. multiple platforms. (617-873-5000 or slate-offer@bbn.com) [11/90]
  3007.  
  3008.     Innovative Solutions (505-883-4252; or Brian Zimbelman, 
  3009. is!brian@bbx.basis.com) publishes the user-configurable Motif-based Xamine 
  3010. editor.
  3011.  
  3012.     Qualix offers a product. Information: info@qualix.com or 800-245-UNIX 
  3013. (415-572-0200).
  3014.  
  3015.     Typex is a Motif-based editor available for several systems. 
  3016. Information: Amcad Research, 408-867-5705, fax -6209.
  3017.  
  3018.     WordPerfect offers an X-based version of WordPerfect 5.1 for several
  3019. workstations. Information: 801-222-5300 or 800-451-5151.
  3020.  
  3021.     Bradford Business Systems (714-859-4428) offers SpeedEdit for several 
  3022. systems. 
  3023.  
  3024.     VITAL (713-781-7406) offers the Crisp editor, a work-alike superset of 
  3025. the popular BRIEF editor, for several systems.  Previously-available source 
  3026. versions have been withdrawn from circulation.
  3027.  
  3028. ----------------------------------------------------------------------
  3029. Subject:  81)  Where can I get an X-based mailer?
  3030.  
  3031.     xmh, an X interface to mh, is distributed with the X11 release.
  3032.  
  3033.     Xmail is an X-based window interface to Berkeley-style mail handlers;
  3034. it is styled primarily after the Sunview mailtool application and builds on
  3035. most Unix systems. The current release [1/92] is 1.4, available in the MIT 
  3036. X11R5 contrib tape and from ftp.x.org and uunet. Info: Jeff Markham,
  3037. markham@cadence.com.
  3038.  
  3039.     adcmail (0.9 pre-release), on ftp.csc.liv.ac.uk provides all the
  3040. normal mail facilities (message management, aliases, etc.); work is underway
  3041. to tidy things up a little and to add MIME compliancy.
  3042.  
  3043.     MMH (My Mail Handler), a motif interface to the MH mail handler, is 
  3044. available from ftp.eos.ncsu.edu (152.1.9.25) in pub/bill.tar.Z; it is bundled
  3045. with the TED editor, which it uses for composing messages. Motif 1.1 is 
  3046. required; if you don't have it, look for DEC and SPARC executables in the same 
  3047. place.  Information and problems to: Erik Scott, escott@eos.ncsu.edu. [1/92]
  3048.  
  3049.     The Andrew Toolkit supports the Andrew Message System; it is available
  3050. from ftp.x.org and many other X archives and from emsworth.andrew.cmu.edu 
  3051. (128.2.30.62), or send email to susan+@andrew.cmu.edu. Release 5.1 became
  3052. available 2 June 92.
  3053.     You may be able to use the Remote Andrew Demo service to try this 
  3054. software; try "finger help@atk.itc.cmu.edu" for help.
  3055.  
  3056.     XMailTool is an Xaw-based interface to a BSD-style mail reader; version
  3057. 2.0 was released 9/92. Information: Bob Kierski, bobo@cray.com or 612-683-5874.
  3058.  
  3059.     Cem is a Motif-based mailer using standard mailbox formats; it is on
  3060. nelson.tx.ncsu.edu in pub/Cem. Information: Sam Moore (Sam_Moore@ncsu.edu).
  3061.  
  3062.     MuMail, an X-based elm-like mail program is available at
  3063. sipb.mit.edu:/pub/seyon/MUMAIL or sunsite.unc.edu in 
  3064. /pub/Linux/system/Mail/Mumail-2.3b-tar.Z.
  3065.  
  3066.     Xelm is a work-in-progress by wing@dcs.warwick.ac.uk to construct an X
  3067. version of the elm mailer.
  3068.  
  3069. Also:
  3070.  
  3071.         Alfalfa Software offers Poste, a UNIX-based mailer that has Motif- and 
  3072. command-based interfaces.  It includes support for multimedia enclosures, and 
  3073. supports both the Internet and X.400 mail standards.  Information: 
  3074. info@alfalfa.com, +1 617-497-2922.
  3075.  
  3076.     Z-Code Software offers Z-Mail for most Unix systems; binaries support
  3077. both tty and Motif interfaces. The mailer includes a csh-like scripting 
  3078. language for customizing and extending mail capabilities.  Information: 
  3079. info@z-code.com, +1 415 499-8649.
  3080.  
  3081.     Several vendors' systems include X-based mailers. DEC offers dxmail; 
  3082. Sun offers an X-based mailtool; SCO (info@sco.com) includes SCOmail in its Open
  3083. Desktop product. HP offers the MPower product.
  3084.  
  3085. Several integrated office-productivity tools include mailers:
  3086.  
  3087.     The Applixware office integration tools from Applix (1-800-8APPLIX, 
  3088. MA: 508-870-0300) include a mailer.
  3089.  
  3090. ----------------------------------------------------------------------
  3091. Subject:  82)! Where can I get an X-based paint/draw program?
  3092.  
  3093. Drawing Packages:
  3094.  
  3095.     xpic is an object-oriented drawing program. It supports multiple font 
  3096. styles and sizes and variable line widths; there are no rotations or zooms.
  3097. xpic is quite suitable as an interactive front-end to pic, though the 
  3098. xpic-format produced can be converted into PostScript. (The latest version is 
  3099. on the R4 contrib tape in clients/xpic.)
  3100.  
  3101.     xfig (original work by Supoj Sutanthavibul, with additional work and
  3102. currently maintained by Brian V. Smith (bvsmith@lbl.gov)) is an
  3103. object-oriented drawing program supporting compound objects.  The xfig format
  3104. can be converted to PostScript or other formats. Recent versions are on the
  3105. R5 contrib tape or on ftp.x.org in /contrib/R5fixes (version 2.1.8 [10/93]).
  3106.  
  3107.         idraw supports numerous fonts and various line styles and arbitrary 
  3108. rotations. It supports zoom and scroll and color draws and fills. The file 
  3109. format is a PostScript dialect. It can import TIFF files. Distributed as a part
  3110. of the InterViews C++ toolkit (current release 3.1, from 
  3111. interviews.stanford.edu) .
  3112.  
  3113.     tgif by William Cheng (william@oahu.cs.ucla.edu) is available from most
  3114. uucp sites and also from ftp.x.org and from cs.ucla.edu. It is frequently 
  3115. updated; version 2.14 was released 8/93 (up to patch9 12/93).
  3116.  
  3117.     figure in the Andrew User Interface System (versions 5.2 and above) is
  3118. a general drawing package which also allows arbitrary Andrew insets to be part
  3119. of the drawing.
  3120.  
  3121.     Picasso 3.8, an interactive drawing tool in the style of idraw,
  3122. is on zenon.inria.fr in pub/tk (it requires tk and tclX).
  3123.  
  3124. Commercial Draw Products: 
  3125.  
  3126.     FrameMaker has some draw capabilities. [4/90]
  3127.     Dux Ta-Dah!, 1-800-543-4999
  3128.     Arts&Letters Composer, 214-661-8960
  3129.     Ficor AutoGraph, 513-771-4466
  3130.     IslandGraphics offers IslandDraw.  Info: 415-491-1000.
  3131.  
  3132.     BBN/Slate from BBN Software Products includes a full-featured draw and
  3133. paint program with object grouping and multiple patterns; multiple X platforms.
  3134. (617-873-5000 or slate-offer@bbn.com). [11/90]
  3135.  
  3136.     Corel Draw, 613-728-8200; ported to X by Prior Data Sciences 
  3137. 800-267-2626
  3138.  
  3139.     sphinx is a family of tools for the realization of dynamic drawings;
  3140. it contains the vector-drawing objecft grinx and an interactve X-based editor.
  3141. The toolbox is available from in GmbH (+49 7531 65022, gvr@in-gmbh.de).
  3142.     
  3143. Paint Packages:
  3144.  
  3145.     XPaint 2.1, by David Koblas (koblas@netcom.com), is a color
  3146. bitmap/pixmap editing tool featuring most standard paint program options.  It
  3147. allows for the editing of multiple images simultaneously and supports various
  3148. formats, including PPM, XBM, etc.  The current version is available for ftp
  3149. from ftp.x.org as contrib/xpaint-2.1.1.tar.Z [1/94]
  3150.  
  3151.     A new OpenWindows PostScript-based graphical editor named 'ice' is now 
  3152. [2/91] available for anonymous ftp from Internet host lamont.ldgo.columbia.edu 
  3153. (129.236.10.30).  ice (Image Composition Environment) is an imaging tool that
  3154. allows raster images to be combined with a wide variety of PostScript 
  3155. annotations in WYSIWYG fashion via X11 imaging routines and NeWS PostScript 
  3156. rasterizing. (It may require OpenWindows and Sun C++ 2.0.)
  3157.  
  3158.     The "pixmap" program by Lionel Mallet (mallet@sophia.inria.fr) for
  3159. creating pixmaps is on the R5 contrib tape; it resembles the bitmap client.
  3160. Version 2.4 is now available [2/94] on ftp.x.org and avahi.inria.fr.
  3161.  
  3162.     A version of Robert Forsman's (thoth@lightning.cis.ufl.edu) xscribble,
  3163. an 8-bit paint program for X, is now on ftp.cis.ufl.edu in pub/thoth/. [2/93]
  3164.  
  3165.     Although MetaCard is not generally classified as a paint program, a 
  3166. full 24-bit color image editor is built into the program, which can be used for
  3167. light image editing and for producing color icons (info@metacard.com). MetaCard
  3168. is available via anonymous FTP from ftp.metacard.com, csn.org, or 
  3169. 128.138.213.21.
  3170.     
  3171.     pixt by J. Michael Flanery (flanery@mips.com) produces XPM output; it
  3172. is available on ftp.x.org. 
  3173.  
  3174.     xpe on ftp.x.org produces XPM output.
  3175.  
  3176.     Phoenix is a 24-bit editor for editing of photos, notably. An
  3177. alpha is on nic.funet.fi:pub/graphics/packages/phoenix.
  3178.  
  3179. Commerial Paint Products:
  3180.  
  3181.     DEC Ultrix includes the dxpaint bitmap editor.
  3182.     OpenWindows includes the olpixmap editor.
  3183.     SCO ODT includes the SCOpaint editor.
  3184.     HP VUE includes the vueicon editor.
  3185.     Dux Ta-Dah!, 1-800-543-4999
  3186.     Arts&Letters Composer, 214-661-8960
  3187.     IslandGraphics offers IslandPaint. Info: 415-491-1000.
  3188.  
  3189.     BBN/Slate from BBN Software Products includes a full-featured draw and
  3190. paint program with object grouping and multiple patterns; multiple X platforms.
  3191. (617-873-5000 or slate-offer@bbn.com). [11/90]
  3192.  
  3193. Several integrated office-productivity tools include draw/paint capabilities:
  3194.  
  3195.     The Applixware office integration tools from Applix (1-800-8APPLIX, 
  3196. MA: 508-870-0300) include draw/paint capabilities.
  3197.  
  3198. [thanks in part to Stephen J. Byers (af997@cobcs1.cummins.com), J. Daniel
  3199. Smith (dsmith@ann-arbor.applicon.slb.com), and David Koblas
  3200. (koblas@netcom.com)]
  3201.  
  3202. ----------------------------------------------------------------------
  3203. Subject:  83)  Where can I get an X-based plotting program?
  3204.  
  3205. These usually are available from uucp sites such as uunet or other sites as
  3206. marked; please consult the archie server to find more recent versions.
  3207. See also the comp.graphics FAQ.
  3208.  
  3209.  gnuplot    X (xplot), PostScript and a bunch of other drivers.
  3210.     ftp.x.org [and elsewhere]:contrib/gnuplot3.4a.tar.Z
  3211.  
  3212.  gl_plot    X output only [?]
  3213.     comp.sources.unix/volume18
  3214.  
  3215.  graph+
  3216.     yallara.cs.rmit.oz.au:/pub/graph+.tar.Z [131.170.24.42]
  3217.     comp.sources.unix/volume8
  3218.  
  3219.  pdraw,drawplot        2D and 3D X,PS
  3220.     scam.berkeley.edu:/src/local/3dplot.tar.Z [128.32.138.1]
  3221.     scam.berkeley.edu:/src/local/contour.tar.Z [128.32.138.1]
  3222.     scam.berkeley.edu:/src/local/drawplot.tar.Z [128.32.138.1]
  3223.     uunet:~ftp/contrib/drawplot.tar.Z
  3224.  
  3225.  xgraph        plot, zoom. Outputs PS or HPGL.
  3226.     shambhala.berkeley.edu:/pub/xgraph-11.tar.Z [128.32.132.54]
  3227.     sun1.ruf.uni-freiburg.de:X11/contrib/xgraph-11.tar.Z [132.230.1.1]
  3228.     nisc.jvnc.net:pub/xgraph-11.tar.Z [128.121.50.7]
  3229.     comp.sources.x/volume3
  3230.     or many other sites 
  3231.  
  3232.  ACE/gr (formerly xvgr and xmgr) XY plotting tools
  3233.     ftp.ccalmr.ogi.edu [129.95.72.34]
  3234.     XView version: /CCALMR/pub/acegr/xvgr-2.10.tar.Z
  3235.     Motif version: /CCALMR/pub/acegr/xmgr-2.10.tar.Z
  3236.     [mirrored on ftp.x.org in /contrib/acegr]
  3237.  
  3238.  XGobi        An interactive dynamic scatter-plotting tool from Bellcore
  3239.     lib.stat.cmu.edu: general/xgobi* [log in as statlib with your email
  3240.     as the password; or send email to statlib@lib.stat.cmu.edu containing
  3241.     the one-line message "send xgobi from general"]
  3242.     Information from: Debby Swayne, dfs@bellcore.com.
  3243.  
  3244.  Robot        a scientific XView-based graph plotting and data analysis tool
  3245.     ftp.astro.psu.edu:pub/astrod/robotx0.47.tar.Z [128.118.147.28]
  3246.  
  3247.  plotmtv    a multi-purpose 2D/3D plotter
  3248.     tanqueray.berkeley.edu:/pub/Plotmtv1.3.1.tar.Z
  3249.  XgPlot        Motif-based x-y graphing with a movie-loop display
  3250.     ftp.x.org:XgPlot-4.1.tar.Z
  3251.     
  3252.  
  3253. [2/91. Thanks in part to: emv@ox.com (Ed Vielmetti); geoff@Veritas.COM 
  3254. (Geoffrey Leach); Paul A. Scowen (uk1@spacsun.rice.edu); black@beno.CSS.GOV 
  3255. (Mike Black)]
  3256.  
  3257. ----------------------------------------------------------------------
  3258. Subject:  84)  Where can I get an X-based graph-drawing program?
  3259.  
  3260.     Xgrab reads a textual specification of a graph, lays out the graph
  3261. using heuristics to minimize the number of edge crossings, and displays the
  3262. graph as labeled nodes and edges in an X window. Sources are on
  3263. ftp.cs.washington.edu (128.95.1.4) as pub/xgrab.tar.Z. Interviews 2.6 is 
  3264. required. [12/93]
  3265.     The DaVinci visualization tool can be used to display graphs.
  3266.  
  3267. ----------------------------------------------------------------------
  3268. Subject:  85)  Where can I get an X-based spreadsheet?
  3269.  
  3270. A version of "sc" for X and which supports Lotus files is available from
  3271. vernam.cs.uwm.edu in xspread2.1.tar.Z. It also includes graphing functions.
  3272. Information: soft-eng@cs.uwm.edu.
  3273.  
  3274. The GNU package OLEO is available in prep.ai.mit.edu:pub/gnu/oleo-1.5.tar.Z;
  3275. it can generate PostScript renditions of spreadsheets.
  3276.  
  3277. Also:
  3278.  
  3279. Several of the below are part of integrated office-productivity tools which may
  3280. also include word-processing, email, conferencing, image processing, and 
  3281. drawing/painting, among other features.
  3282.  
  3283. Vendor                        Product    Contact Information 
  3284. ------                        -------    -------------------
  3285. Access Technology             20/20      508-655-9191
  3286. Informix                      WingZ      800-331-1763
  3287. Quality Software Products     Q-Calc/eXclaim    800-628-3999 (CA:213-410-0303) 
  3288. Unipress                      Q-Calc     201-985-8000
  3289. Uniplex                       Uniplex    214-717-0068, 800-356-8063
  3290. Digital                  DECdecision   1-800-DIGITAL
  3291. Applix                  Applixware 508-870-0300, 1-800-8APPLIX.
  3292. AIS                  XESS     919-942-7801, info@ais.com
  3293. BBN Software Products         BBN/Slate  617-873-5000 slate-offer@bbn.com
  3294. Elsid Software Systems          Ripcam     613-228-9468
  3295. Andrew Consortium          table     info-andrew-request@andrew.cmu.edu
  3296.  
  3297. SAS by the SAS Institute now has a spreadsheet module; the X version is
  3298. available on the current popular RISC platforms.
  3299.  
  3300. ----------------------------------------------------------------------
  3301. Subject:  86)  Where can I get X-based project-management software?
  3302.  
  3303. Vendor                            Product        Contact Information 
  3304. ------                -------        -------------------
  3305. Productivity Solutions        Ultra Planner    617-237-1600
  3306. Quality Software Products     MasterPlan Version, 310-410-0303 sales@qsp.com
  3307. Digital Tools, Inc.        AutoPLAN    408-366-6920, 800-755-0065
  3308. NASA                COMPASS        404-542-3265,
  3309.                         service@cossack.cosmic.uga.edu
  3310. GEC-Marconi Software Systems    GECOMO Plus    703-648-1551
  3311. GEC-Marconi Software Systems    SIZE Plus    703-648-1551
  3312. TEI, Inc            VUE        408-985-7100
  3313. Mantix                Cascade        703-506-8833
  3314. Advanced Management Solutions    Schedule Publisher    800-397-6829
  3315. Auburn University        ??        ??
  3316.  
  3317. [thanks to Pete Phillips; 7/92]
  3318. [thanks to Atul Chhabra (atul@nynexst.com); 10/92]
  3319.  
  3320. Pete Phillips (pete@smtl.demon.co.uk) posts to comp.sources.wanted a    
  3321. FAQ on project-management programs.
  3322.  
  3323. ----------------------------------------------------------------------
  3324. Subject:  87)! Where can I get an X-based PostScript previewer?
  3325.  
  3326.     Ghostscript is distributed by the Free Software Foundation 
  3327. (617-876-3296) and includes a PostScript interpreter and a library of graphics
  3328. primitives. Version 2.6.1(.4) is now available; the major site is 
  3329. prep.ai.mit.edu, although ftp.cs.wisc.edu is also recommended. [6/93]
  3330. Version 3.0 will include a full implementation of PostScript Level 2.
  3331.  
  3332.     GSPreview (by the Computing Laboratory of the University of Kent at 
  3333. Canterbury) is an X user interface (WCL-based) to the Ghostscript 2.4-2.6
  3334. interpreter.  The source is available for anonymous ftp from 
  3335. ftp.x.org as gspreview.2.3.tar.Z. [6/93]
  3336.  
  3337.     GhostView (by Tim Theisen, tim@cs.wisc.edu) is full-function user 
  3338. interface for GhostScript. Check ftp.cs.wisc.edu or prep.ai.mit.edu for 
  3339. /pub/ghostview-1.5.tar.Z [7/93]. There are also several executables available
  3340. on ftp.cs.wisc.edu:/pub/X/ghostview-exe for various architectures.
  3341.  
  3342.     XPsView (by Francois Bourdoncle, bourdoncle@prl.dec.com) is a Motif
  3343. wrapper around PsView, which is a X11 DSC Document viewer that can use both
  3344. XDPS and GhostScript as the interpreter engine. An early version was an the
  3345. Alpha Freeware CD. More recent versions are on gatekeeper.dec.com in
  3346. /pub/DEC/PRL/psview-1.32.tar.Z.
  3347.  
  3348. Also:
  3349.  
  3350.     ScriptWorks is Harlequin's software package for previewing and printing
  3351. PostScript(R) descriptions of text and graphics images; previewers for X are 
  3352. available. For information call +44-223-872522 or send email to 
  3353. scriptworks-request@harlqn.co.uk.
  3354.  
  3355.     Image Network's Xps supports the full PostScript language and renders
  3356. in color, grayscale, or monochrome. Fonts displayed are anti-aliased. Info:
  3357. Image Network, +1 415 967 0542.
  3358.  
  3359.     Digital's dxpsview runs on UWS 2.1 and 2.2.
  3360.  
  3361.     Sun's pageview runs with the X11/NeWS server. 
  3362.  
  3363.     Showpage, the PostScript previewer from Adobe Systems, is available
  3364. from ICS as part of the Display PostScript System for Sun Solaris 1 (SunOS).
  3365. More information is available from ICS at info@ics.com, or +1 617 621 0060,
  3366. or Fax at +1 617 621 9555.
  3367.  
  3368. ----------------------------------------------------------------------
  3369. Subject:  88)  Where can I get an X-based GKS package?
  3370.  
  3371.     The latest freely-available XGKS can be obtained from 
  3372. xgks-request@unidata.ucar.edu; this is a 2c implementation derived from the 
  3373. X11R4 contrib XGKS from IBM and the University of Illinois. The release
  3374. is on unidata.ucar.edu [128.117.140.3] as pub/xgks.tar.Z. [12/90]
  3375.     In addition, Grafpak-GKS is available from Advanced Technology Center
  3376. (714-583-9119).
  3377.     GKSUL is available from gks@ulowell.edu (ULowell CS department). It is
  3378. a 2b implementation which includes drivers for a variety of devices. It can be 
  3379. passed an X window ID to use. The package includes both C and Fortran bindings.
  3380.  
  3381. [11/90; from dsrand@mitre.org and from stew@hanauma.stanford.edu]
  3382.  
  3383.     An XgksWidget is produced by Neil Bowers (neilb@leeds.dcs; 
  3384. neilb@dcs.leeds.ac.uk); the latest [10/91] conforms with the new version of 
  3385. XGKS (2.4). It is available on ftp.x.org in contrib/xgks-widget.tar.Z. 
  3386.  
  3387. ----------------------------------------------------------------------
  3388. Subject:  89)  Where can I get an X-based GL package?
  3389.  
  3390.     Xgl 2.0 is available [11/93] from ftp.thp.Uni-Duisburg.DE 
  3391. (134.91.32.1), in files pub/source/X11/Xgl-2.0.tar.{Z|gz}.
  3392.     Certain vendors (SGI, IBM) are offering a GL package for X.
  3393.  
  3394. ----------------------------------------------------------------------
  3395. Subject:  90)  Where can I get an X-based PEX package?
  3396.  
  3397.     The first official release of PEX is with X11R5; fix-22 brings the
  3398. Sample Implementation server to version 5.1.
  3399.  
  3400.     The final PEX 5.1 Protocol specification is now available via anonymous
  3401. ftp to ftp.x.org, in the directory /pub/DOCS/PEX/. Changes made from the 
  3402. Public Review draft are listed in the file "5.1P_changes" in that directory. 
  3403. [9/92]
  3404.  
  3405.     The final PEXlib 5.1 document is on ftp.x.org in pub/DOCS/PEXlib. 
  3406. [11/92]
  3407.  
  3408.     There is now available from the University of Illinois an 
  3409. implementation of the PEX 4.0 specification called UIPEX. It contains a "near-
  3410. complete" implementation of PHiGS and PHiGS PLUS. The file 
  3411. pub/uipex/uipex.tar.Z is on a.cs.uiuc.edu (128.174.252.1); the porting platform
  3412. was an RT running 4.3.  Questions and comments can to go uipex@cs.uiuc.edu. 
  3413.  
  3414.     In addition, the PEXt toolkit by Rich Thomson (rthomson@dsd.es.com) is 
  3415. available on ftp.x.org as PEXt.tar.Z; it includes a PEX widget making it 
  3416. easier to include PEX in Xt-based programs.
  3417.  
  3418. ----------------------------------------------------------------------
  3419. Subject:  91)  Where can I get an X-based TeX or DVI previewer?
  3420.  
  3421.     The xtex previewer for TeX files is available from a number of archive 
  3422. sites, including uunet; the current version is usually on ftp.cs.colorado.edu
  3423. (128.138.204.31) in SeeTeX-2.18.5.tar.Z; pre-converted fonts are also on that 
  3424. machine. The distribution all includes "mftobdf" which converts PK, GF, and PXL
  3425. fonts to BDF format, where they can then be compiled for use by your local X
  3426. server. 
  3427.     The xdvi dvi-previewer is fairly comprehensive and easy to use. It is 
  3428. also available from a number of sites, including uunet and ftp.x.org; current 
  3429. version is patchlevel 16 [12/92].
  3430.  
  3431. ----------------------------------------------------------------------
  3432. Subject:  92)  Where can I get an X-based troff previewer?
  3433.  
  3434.     X11R4 has two previewers for device-independent troff: the supported 
  3435. client xditview, and the contributed-but-well-maintained xtroff. An earlier 
  3436. version of xtroff also appeared on the R3 contributed source. xditview is also
  3437. in the R5 distribution.
  3438.     In addition, the xman client can be used to preview troff documents
  3439. which use the -man macros (i.e. man pages).
  3440.     If psroff is used its output can be viewed with a PostScript previewer.
  3441.  
  3442.     Groff, a C++-based [tn]roff document formatter from the Free Software
  3443. Foundation, includes an X-based document previwer based probably on xditview.
  3444. Groff can put out both dvi and PostScript, so xdvi or GhostView can be used
  3445. to preview formatted documents.
  3446.  
  3447. In addition:
  3448.  
  3449.     xproof, an X previewer for ditroff has been contributed by Marvin 
  3450. Solomon (solomon@cs.wisc.edu); version 3.5 is available on ftp.x.org in 
  3451. contrib/xproof*.     [8/90]
  3452.  
  3453.     Elan Computer Group (CA: 415-964-2200) produces eroff, a modified 
  3454. troff implementation, and Elan/Express, an X11 eroff previewer.
  3455.  
  3456.     SoftQuad (416-963-8337; USA only 800-387-2777, mail@sq.uu.net or
  3457. mail@sq.com) offers SoftQuad Publishing Software, including a substantially-
  3458. rewritten troff formatter, a better intermediate language with backwards 
  3459. compatibility, and an X11[R3,R4] previewer. (This is the package adopted by 
  3460. AT&T's own MIS department, and used in and re-sold by many parts of AT&T). 
  3461. [information from Ian Darwin, SoftQuad (ian@sq.com) 3/90]
  3462.  
  3463.     Image Network (1-800-TOXROFF; CA: 415-967-0542) offers the Xroff 
  3464. package, which includes a fine modified troff implementation and a set of 
  3465. X11-based page previewers. (This is the package OEM'ed by several hardware 
  3466. vendors.)
  3467.  
  3468. [mostly courtesy moraes@cs.toronto.edu (Mark Moraes)] [2/90]
  3469.  
  3470. ----------------------------------------------------------------------
  3471. Subject:  93)! Where can I get a WYSIWYG interface builder (or other shortcuts)?
  3472.  
  3473.     A new release of the DIRT interface builder by Richard Hesketh works 
  3474. with X11R5 and includes some support for the Motif widget set. From the README:
  3475.   This builder allows the interactive creation and rapid prototyping of X user
  3476.   interfaces using the X Toolkit and a number of Widget Sets.  Dirt generates
  3477.   "Wc - Widget Creation" resource files and this distribution also includes the
  3478.   Widget Creation Library (version 1.06, with the exception of the demos and
  3479.   Mri/Ari source code) with the kind permission of its author David E. Smyth.
  3480. Check dirt.README, dirt.A2.0.tar.Z, and dirt.PS.Z on ftp.x.org.
  3481.  
  3482.     The InterViews 3.0.1 C++ toolkit contains a WYSIWIG interface builder 
  3483. called ibuild. ibuild generates code for an InterViews application complete 
  3484. with Imakefile and an X-resource file. Documentation is /pub/papers/ibuild.ps 
  3485. on interviews.stanford.edu (36.22.0.175).
  3486.     Quest Windows's (408-496-1900) ObjectViews C++ package includes an
  3487. interactive building tool. 
  3488.  
  3489.     Druid (Demonstrational Rapid User Interface Development) runs on SPARC 
  3490. machines using OSF/Motif 1.0; it is intended eventually to be a full UIMS but 
  3491. apparently now has only support for creating the presentation components, for 
  3492. which it generates C/UIL code. Info: Singh G, Kok CH, Ngan TY, "Druid: A System
  3493. for Demonstrational Rapid User Interface Development". Proc. ACM SIGGRAPH Symp 
  3494. on User Interface Software and Technology (UIST'90). ACM, NY, 1990, pp:167-177.
  3495.  
  3496.     The XF builder (version 2.2.11) is a TCL builder; versions are on
  3497. barkley.berkeley.edu. You may subscribe to a mailing list by sending
  3498. "sub xf-l <Your name>" to listserv@tubvm.cs.tu-berlin.de.
  3499.  
  3500.     ADEW in the Andrew User Interface System supports WYSIWYG user
  3501. interface construction with the full selection of AUIS insets, including text,
  3502. rasters, tables, and the usual interactors.  Semantics can be coded in C or in
  3503. Ness, the AUIS extension language.
  3504.  
  3505. Also:
  3506.     In addition, these commercial products (unsorted) are available in 
  3507. final or prerelease form [the * following the product name indicates that the 
  3508. product is known to allow the designer to specify for each widget whether a 
  3509. particular resource is hard-coded or written to an application defaults file,
  3510. for at least one form of output]. Some are much more than user-interface tools;
  3511. some are full user interface management systems; information on most is not
  3512. up-to-date:
  3513.  
  3514. Product Name        Look/Feel    Code Output        Vendor
  3515.  
  3516. HP Interface        Motif 1.1    C(Xm)            HP/Visual Edge
  3517.  Architect/ UIMX    
  3518. OPEN LOOK Express    OPEN LOOK    C(Xol+ helper lib)    AT&T /
  3519.                                 Visual Edge
  3520. UIMX 2.0 *        Motif 1.1    C(Xm + helper code)    Visual Edge
  3521.                                 514-332-6430
  3522.                                 & distributors
  3523. X-Designer 1.1 *    Motif 1.1    C(Xm); C/UIL        Imperial
  3524.                                 Software
  3525.                                 Technology, Ltd
  3526.                                   (+44 734 587055)
  3527.                                 sales@ist.co.uk
  3528. XFaceMaker2 (XFM2) *     Motif 1.0    C;C/script (C-like procedural 
  3529.                     language);C/UIL
  3530.                                  NSL 
  3531.                             (33 1 43 36 77 50)
  3532.                             requests@nsl.fr
  3533. Builder Xcessory 3.0 *    Motif 1.2    C(Xm); C/UIL[r/w]    ICS 
  3534.                     Ada; and reads GIL    (617-621-0060)
  3535.                                 info@ics.com
  3536. Builder Xcessory 2.6 *    Motif 1.1    C(Xm); C/UIL[r/w]    DEC
  3537.                     [VMS; OSF/1]        (1-800-DIGITAL)
  3538. XBUILD 1.1 *        Motif 1.0    C(Xm); C/UIL         Nixdorf    
  3539.                                 (617-864-0066)
  3540.                             xbuild@nixdorf.com
  3541. iXBUILD            Motif 1.1    C(Xm); C/UIL        iXOS Software
  3542.                                 karl@ixos.uucp
  3543.                                 089/461005-69
  3544. TeleUSE 2.1 *        Motif 1.1.5    C(Xm); C/UIL[r/w]    Alsys(TeleSoft)
  3545.                                 (619-457-2700)
  3546.                             gui_info@telesoft.com
  3547.                             in Germany: in GmbH,
  3548.                             +49 7531 65022, 
  3549.                             gvr@in-gmbh.de
  3550. ezX 3.2            Motif 1.1    C(Xm +helper lib);C/UIL;Ada
  3551.                                 Sunrise
  3552.                                 (401-847-7868)
  3553.                                    info@sunrise.com
  3554. Snapix            Motif        C/Xm            ADNT
  3555.                                 +33 1 3956 5333
  3556. OpenWindows Developers    OPEN LOOK     GIL [-> C/XView]    Sun
  3557. Guide 3.0                GIL [-> C++/XView]
  3558.                     GIL [-> C/OLIT]
  3559.                     GIL [-> C/PostScript for TNT]
  3560. ExoCode/SXM        Motif        C(Xm)            Expert Object
  3561. ExoCode/Plus        OPEN LOOK    XView            708-676-5555
  3562. TAE+ 5.3        Xw;Motif    C(Xw,Xm); C/TCL (TAE Control Language,
  3563.                     like UIL[needs helper library]);
  3564.                     VAX Fortran; Ada; C++
  3565.                             Nasa Goddard
  3566.                             301-286-6034
  3567.                             Century Computing
  3568.                             301-953-3330
  3569. MOB, XSculptor        Motif; OpenLook    C/Xm,UIL; C/Xol        Kovi
  3570.                                 408-982-3840
  3571. PSM            PM, MSW 3.0,    C/UIL            Lancorp
  3572.             Motif 1.1.2,Mac                Pty Ltd.
  3573.                                 +61 3 629 4833
  3574.                                 Fax:  629 1296
  3575.                                 (Australia)
  3576. MOTIFATION *        Motif 1.1.x|1.2    C(Xm)            PEM Stuttgart
  3577.                                +49 (0) 0711/713045
  3578.                                +49 (0) 0711/713047 fax
  3579.                             basien@pem-stuttgart.de
  3580. UIB            Open Look/Motif    C++(OI)            ParcPlace 
  3581.                                 +1 303-678-4626
  3582. ILOG BUILDER        Motif                    ILOG
  3583.                                 1 415 390 9000
  3584.                                 info@ilog.com
  3585. XVT-Design        Motif,OL,Windows,&c            XVT
  3586.                                 303-443-4223
  3587.                                 info@xvt.com
  3588. Mimex            Motif 1.2    C(Xm); C/UIL[r/w]    Kernex
  3589.                                 408-441-7376
  3590.  
  3591.                                 
  3592. Look for magazine reviews for more complete comparisons of meta-file formats,
  3593. documentation, real ease-of-use, etc; Unix World and Unix Review often carry
  3594. articles. See also SunExpert 5/93.
  3595.  
  3596.     ParcPlace is making freely available its popular ObjectBuilder(tm)
  3597. and Object Interface (OI(tm)) products for the Linux operating system.
  3598. ObjectBuilder is a GUI builder written completely in C++, that enables UNIX
  3599. C++ developers to apply the principles of object-orientation to the
  3600. development of user interfaces. OI, a C++ class library, provides the toolkit
  3601. foundation for ObjectBuilder. OI implements the look-and-feel of both Motif
  3602. 1.2 and OPEN LOOK. OI is built directly on top of Xlib and is unencumbered by
  3603. runtime royalties to any party.  ObjectBuilder and OI are very extensible,
  3604. actively facilitating the use of subclassing to create new, reusable, user
  3605. interface components.  Sources are on tsx-11.mit.edu in
  3606. /pub/linux/packages/OI and available from ParcPlace (+1 408 481 9090).
  3607.  
  3608.     In addition, Neuron Data (1 415 321-4488) makes Open Interface, a 
  3609. window-system-independent object toolkit which supports interfaces which are 
  3610. or resemble (supersets of) Mac, Windows, and Motif and Open Look; the package 
  3611. includes an interface builder.
  3612.  
  3613.     In addition, the GRAMMI builder supports the development of Ada/X 
  3614. applications using its own set of objects which have Motif look and feel.
  3615. GRAMMI is written in Ada and generates Ada specs and stub bodies.  Call 
  3616. 1-800-877-1815 or send mail to info_server@evb.com with subject "send grammi"
  3617. [without quotes].
  3618.  
  3619.     In addition, these non-WYSIWYG but related products may help for goals 
  3620. of rapid prototyping of the application interface:
  3621.  
  3622.     WCL: the Widget Creation Library. Basically describes the widget
  3623. hierarchy and actions in a resources file; available from fine archive servers
  3624. everywhere, including devvax.jpl.nasa.gov (128.149.1.143) in pub/. Wcl provides
  3625. a very thin layer over Xt without any internal tweaking. Version 2.5 is current
  3626. [3/93].
  3627.     TCL/TK: TK is a Motif-like object set for use with the TCL scripting
  3628. language. There is also a package tclMotif on ftp.x.org which may be used to 
  3629. add TCL scripting to Motif programs; version 1.1 was released 2/94.
  3630.     WAFE: Wafe is a package that implements a symbolic interface to the
  3631. Athena widgets (X11R5) and OSF/Motif.  A typical Wafe application consists of
  3632. two parts: a front-end (Wafe) and an application program which runs typically
  3633. as a separate process. The application program can be implemented in an
  3634. arbitrary programming language and talks to the front-end via stdio.  Since
  3635. Wafe (the front-end) was developed using the extensible TCL shell, an
  3636. application program can dynamically submit requests to the front-end to build
  3637. up the graphical user interface; the application can also down-load
  3638. application specific procedures into the front-end, which can be executed
  3639. without interaction with the application program. Wafe is available from
  3640. ftp.wu-wien.ac.at:pub/src/X11/wafe/wafe-0.96.tar.gz [10/93].
  3641. wafeperl 0.2, which links Perl 4.036 to Wafe 0.96, is available [12/93] from 
  3642. ftp.wu-wien.ac.at in pub/src/X11/wafe/wafeperl-0.2.tar.gz.
  3643.     XGEN: a scripting language which can be used to prototype Motif 
  3644. environments; available on ftp.x.org.
  3645.     WINTERP: an Xlisp-based Motif toolkit allows for interpretive 
  3646. programming. The copy on the R4 tape is outdated; get a copy off ftp.x.org or 
  3647. email to winterp-source%hplnpm@hplabs.hp.com. 
  3648.     The Serpent UIMS permits the building of user-interfaces without 
  3649. specific knowledge of coding but with an understanding of attributes being set
  3650. on a particular [Motif] widget.  Beta Release 1.2 is available from 
  3651. ftp.sei.cmu.edu (128.237.1.13) and can be found in /pub/serpent.  Serpent is 
  3652. also available on ftp.x.org (18.24.0.11) in /contrib/serpent. Email questions 
  3653. can go to serpent@sei.cmu.edu. A commercial version of Serpent is available as 
  3654. "Agora" from ASET, 221 Woodhaven Drive, Pittsburgh, PA 15228.
  3655.     Garnet is a Common Lisp-based GUI toolkit. Information is available 
  3656. from garnet@cs.cmu.edu.
  3657.     MetaCard is a hypertext/Rapid Application Development environment
  3658. similar to Apple/Claris Corporation's HyperCard (info@metacard.com). MetaCard 
  3659. is available via anonymous FTP from ftp.metacard.com, csn.org, or 
  3660. 128.138.213.21. (Mailing list: listserv@grot.starconn.com).
  3661.  
  3662. Articles comparing these tools include:
  3663.     UnixWorld 5/92; SunWorld 12/92; LAN Computing 12/92; SunExpert 5/93.
  3664.  
  3665. ----------------------------------------------------------------------
  3666. Subject:  94)  Where can I find X tools callable from shell scripts?
  3667. I want to have a shell script pop up menus and yes/no dialog boxes if the user 
  3668. is running X.
  3669.  
  3670.     Several tools in the R3 contrib/ area were developed to satisfy these
  3671. needs: yorn pops up a yes/no box, xmessage displays a string, etc. There are
  3672. several versions of these tools; few, if any, have made it to the R4 contrib/ 
  3673. area, though they may still be available on various archive sites.
  3674.     XScript, a collection of X shell scripts, is on csc.canberra.edu.au 
  3675. under /pub/motif/xscript and also on ftp.x.org; it includes several stand-alone
  3676. X applications which can be embedded in shell scripts. XScript requires 
  3677. tclMotif 1.0 or later.
  3678.     In addition, Richard Hesketh (rlh2@ukc.ac.uk) has posted the xmenu
  3679. package to comp.sources.x ("v08i008: xmenu") for 1-of-n choices.  [7/90]
  3680.     Two versions of XPrompt have been posted to comp.sources.x, the latter
  3681. being an unauthorized rewrite. [R. Forsman (thoth@reef.cis.ufl.edu), 1/91]
  3682.     There is a version of XMenu available from comp.sources.x; it is
  3683. being worked on and will likely be re-released.
  3684.     xp-1.1.tar.Z, xpick-1.0.tar.Z and xzap-1.0.tar.Z on ftp.x.org's 
  3685. contrib/ are tools by Gerry.Tomlinson@newcastle.ac.UK which act as X versions
  3686. of the simple display and choice-making tools in K&P. [4/92]
  3687.     xtpanel lets the user build a panel containing interactive objects such
  3688. as buttons, sliders, text fields, etc., either from the command line or using a
  3689. simple scripting language. It is available for anonymous ftp from 
  3690. hanauma.Stanford.EDU (36.51.0.16) as pub/X/xtpanel-3.01.tar.Z and may also be 
  3691. found in the alt.sources archives.
  3692.  
  3693. ----------------------------------------------------------------------
  3694. Subject:  95)  Where can I get an X-based debugger?
  3695.  
  3696.     xdbx, an X interface to the dbx debugger, is available via ftp from 
  3697. ftp.x.org. The current [1/91] version is 2.1 patchlevel 2.
  3698.     An X interface to gdb called xxgdb is more like xdbx 2.1.2. It is part 
  3699. of comp.sources.x volume 11 [2/91]; xxgdb-1.06.tar.Z is on ftp.x.org.
  3700.     mxgdb is a Motif interface to gdb by Jim Tsillas 
  3701. (jtsillas@proteon.com); version 1.2 was released 11/93.
  3702.     UPS is a source-level debugger which runs under the X11 (and SunView)
  3703. window systems on Sun, DEC, and Linux platforms. It is available from ftp.x.org 
  3704. (18.24.0.11) as contrib/ups-2.45.tar.Z (also ups-2.45-to-2.45.2.patch.Z)
  3705. and unix.hensa.ac.uk (129.12.21.7) in /pub/misc/unix/ups (or try mail to 
  3706. archive@unix.hensa.ac.uk). [10/92] Unofficial fixes by Rod Armstrong 
  3707. (rod@sj.ate.slb.com) are on unix.hensa.ac.uk in 
  3708. /misc/unix/ups/contrib/rod@sj.ate.slb.com.
  3709.  
  3710. Also:
  3711.     MIPS produces a highly-customizable (WCL-based) Visual Debugger.
  3712.     You should be able to use Sun's dbxtool with its X11/NeWS server.
  3713.     The CodeCenter (617-498-3000) source-level debugger, available on most
  3714. major platforms, includes an X-based interface.
  3715.     AT&T offers the eXamine Graphical Interface, an X11 interface to dbx
  3716. and C++ dbx for Sun3 and Sun4 and sdb and sdb++ for 386 and 3B2 platforms. Call
  3717. 1-508-960-1997 or contact examine@mvuxi.att.com for more information.
  3718.         Solbourne (+1 303-678-4626) offers PDB, its X-based debugger for C, C++
  3719. and Fortran.  PDB uses the OI toolkit and runs in either Open Look or Motif 
  3720. mode. 
  3721.     SCO (info@sco.com) offers dbXtra as part of several development 
  3722. systems.
  3723.         Lucid's Energize Programming System, a tightly integrated development
  3724. environment for C and C++ programs, incorporates a graphical user interface on
  3725. top of an extended version of gdb. Info:  lucid-info@lucid.com, or
  3726. (800) 223-9322.
  3727.  
  3728. ----------------------------------------------------------------------
  3729. Subject:  96)  How can I "tee" an X program identically to several displays? 
  3730.  
  3731.     There are several protocol multiplexer tools which provide for the 
  3732. simultaneous display of X clients on any number of machines.
  3733.     XMX (an X Protocol Multiplexor) is available from wilma.cs.brown.edu 
  3734. (128.148.33.66) as pub/xmx.tar.Z It works independently of the server and does
  3735. not affect the application being shared; it was developed for use in the
  3736. electronic classroom. An update is expected soon [5/93].
  3737.     XTV is a conference program which can be used to duplicate the
  3738. "chalkboard" on several displays. Release 1 is available on the X11R5 contrib
  3739. tapes; a more recent version is on ftp.cs.odu.edu as pub/wahab/XTV.r2.tar.Z.
  3740.     SHX from Michael Altenhofen of Digital Equipment GmbH CEC Karlsruhe 
  3741. also does this; it is a "WYSIWIS" (What You See Is What I See) package in the 
  3742. context of a computer-based learning/training tool to provide online help from
  3743. remote tutors but is also useful for general window sharing. Information: 
  3744. shX@nestvx.enet.dec.com.  SHX can be found on ftp.x.org and 
  3745.         gatekeeper.dec.com:/pub/X11/contrib/shX.tar.Z, 
  3746.         crl.dec.com:/pub/X11/contrib/shX.tar.Z 
  3747. Modifications to SHX for color mapping and private color allocation by
  3748. Mark J. Handley (M.Handley@cs.ucl.ac.uk) are on cs.ucl.ac.uk in 
  3749. car/shX.car.tar.Z.
  3750.     XTrap is implemented as a server/library extension and can be used
  3751. to record and then replay an x session. It is available as
  3752. ftp.x.org:/contrib/XTrapV33_X11R5.tar.Z.    
  3753.     wscrawl can be used as a "multi-person paint program". It's available
  3754. on sax.stanford.edu as wscrawl.shar.Z. Binaries are on doppler.ncsc.org in 
  3755. pub/wscrawl.
  3756.     Shdr implements a simple shared whiteboard, without a chalk-passing
  3757. mechanism. It's available on parcftp.xerox.com as pub/europarc/shdr.tar.Z.
  3758.     SketchPad 1.0 (3/93) is a distributed interactive graphical editor 
  3759. particularly designed for sketching. Sources have been posted to alt.sources
  3760. and are available from ftp.igd.fhg.de (192.44.32.1) in ~ftp/incoming/sketchpad.
  3761.     The NESTOR project is described in "Upgrading A Window System For 
  3762. Tutoring Functions", Michael Altenhofen et al., the proceedings of the EXUG
  3763. Conference 11/90.
  3764.  
  3765. Also of use:
  3766.         Hewlett-Packard Co. has a commercial product, "HP SharedX" which works
  3767. under HP-UX currently on their 300, 400, and 700 series workstations and their
  3768. HP 700/RX X Stations.  Machines receiving shared windows can be any X server.
  3769. HP SharedX consists of a server extensions and a Motif based user interface
  3770. process.  Contact your local HP sales rep. for more information.
  3771.     IBM offers a commercial product.
  3772.     Sun offers multi-user confering software called ShowMe.
  3773.     InSoft (Mechanicsburg, PA, USA, 717-730-9501) offers multi-user 
  3774. conferencing software called Communique. Version 3.0 is available on Sun and
  3775. HP platforms.
  3776.     Vartalaap is a multiparty multimedia Conferencing System that works
  3777. over Unix sockets; the interfaceis based on XView.  It's available at 
  3778. ftp.x.org under contrib/vartalaap.tar.Z.
  3779.     Collage is a synchronous collaborative data analysis tool for use
  3780. over the Internet.  Features include a shared whiteboard, screen
  3781. capture/sharing, a shared text editor, and data-analysis tools.  Sources are
  3782. on ftp.ncsa.uiuc.edu (141.142.20.50) in /UNIX/XCollage/Collage1.2.  Version
  3783. 1.2 became available 10/93.
  3784.  
  3785. [Thanks in part to scott@spectra.com (Tim Scott), 5/91, and to Peter Cigehn 
  3786. (peter@lulea.trab.se), 8/92 ]
  3787.  
  3788. ----------------------------------------------------------------------
  3789. Subject:  97)  Can I use C++ with X11? Motif? XView?
  3790.     
  3791.     The X11R4/5 header files are compatible with C++. The Motif 1.1 header 
  3792. files are usable as is inside extern "C" {...}. However, the definition of
  3793. String in Intrinsic.h can conflict with the libg++ or other String class and
  3794. needs to be worked around.
  3795.  
  3796.     Some other projects which can help:
  3797.  
  3798.     WWL, a set of C++ classes by Jean-Daniel Fekete to wrap X Toolkit 
  3799. widgets, available via anonymous FTP from ftp.x.org as contrib/WWL-1.2.tar.Z 
  3800. [7/92] or lri.lri.fr (129.175.15.1) as pub/WWL-1.2.tar.Z.  It works by 
  3801. building a set of C++ classes in parallel to the class tree of the widgets.
  3802.     The C++ InterViews toolkit is obtainable via anonymous FTP from 
  3803. interviews.stanford.edu. InterViews uses a box/glue model similar to that of 
  3804. TeX for constructing user interfaces and supports multiple looks on the user 
  3805. interfaces. Some of its sample applications include a WYSIWIG document editor 
  3806. (doc), a MacDraw-like drawing program (idraw) and an interface builder 
  3807. (ibuild).
  3808.     THINGS,  a class library written at the Rome Air Force Base by the 
  3809. Strategic Air Command, available as freeware on archive sites.
  3810.  
  3811.     Motif++ is a public-domain library that defines C++ class wrappers
  3812. for Motif 1.1 and 1.2; it adds an "application" class for, e.g., initializing
  3813. X, and also integrates WCL and the Xbae widget set. This work was developed
  3814. by Ronald van Loon <rvloon@motif.hacktic.nl> based on X++, a set of bindings
  3815. done by the University of Lowell Graphics Research Laboratory. The current
  3816. sources are available from decuac.dec.com (192.5.214.1) in
  3817. /pub/X11/motif++.28.jul.93.tar.gz; in the UK check src.doc.ic.ac.uk. Send to 
  3818. motif++-request@motif.hacktic.nl to be added to the mailing list.
  3819.  
  3820.     Xm++ is a user interface framework for C++ using the Motif and Athena
  3821. toolkits.  Source is on ftp.x.org as contrib/Xm++.0.52.tar.Z; or email to 
  3822. xmplus@ani.univie.ac.at.
  3823.     
  3824.     The source code examples for Doug Young's "Object-Oriented Programming 
  3825. with C++ and OSF/Motif" [ISBN 0-13-630252-1] do not include "widget wrappers" 
  3826. but do include a set of classes that encapsulates higher-level facilities 
  3827. commonly needed by Motif- or other Xt-based applications; check ftp.x.org in
  3828. ~ftp/contrib/young.c++.tar.Z.
  3829.     Rogue Wave offers "View.h++" for C++ programmers using Motif; info:
  3830. 1-800-487-3217 or +1 503 754 2311.
  3831.     A product called "Commonview" by Glockenspiel Ltd, Ireland (??) 
  3832. apparently is a C++-based toolkit for multiple window systems, including PM,
  3833. Windows, and X/Motif.
  3834.     Xv++ is sold by Qualix (415-572-0200; fax -1300); it implements an 
  3835. interface from the GIL files that Sun's OpenWindows Developers Guide 3.0 
  3836. produces to Xview wrapper classes in C++.
  3837.  
  3838.     UIT is a set of C++ classes embedding the XView toolkit; it is intended
  3839. for use with Sun's OpenWindows Developers Guide 3.0 builder tool. Sources are 
  3840. on ftp.x.org as UIT.tar.Z. Version 2 was released 5/28/92.
  3841.     
  3842.     Also of likely use is ObjectCenter (Saber-C++). And a reasonable
  3843. alternative to all of the above is ParcPlace's (formerly Solbourne's) Object 
  3844. Interface.
  3845.  
  3846. [Thanks to Douglas S. Rand (dsrand@mitre.org) and George Wu (gwu@tcs.com);2/91]
  3847.  
  3848. ----------------------------------------------------------------------
  3849. Subject:  98)  Where can I obtain alternate language bindings to X/Xt/Motif?
  3850.  
  3851.     Versions of the CLX Lisp bindings are part of the X11 core source 
  3852. distributions. A version of CLX is on the R5 tape [10/91]; version 5.0.2 [9/92]
  3853. is on ftp.x.org in /contrib/CLX.R5.02.tar.Z.
  3854.  
  3855.     The SAIC Ada-X11 bindings are through anonymous ftp in /pub from
  3856. stars.rosslyn.unisys.com (128.126.164.2) [perhaps
  3857. falcon.stars.ballston.paramax.com (129.204.6.253)?]
  3858.     There is an X/Ada study team sponsored by NASA JSC, which apparently is
  3859. working out bindings. Information: xada@ghg.hou.tx.us.
  3860.     GNU SmallTalk has a beta native SmallTalk binding to X called STIX (by
  3861. Steven.Byrne@Eng.Sun.COM). It is still in its beginning stages, and 
  3862. documentation is sparse outside the SmallTalk code itself. The sources are 
  3863. available as /pub/gnu/smalltalk-1.1.1.tar.Z on prep.ai.mit.edu (18.71.0.38) or 
  3864. ugle.unit.no (129.241.1.97).
  3865.     Prolog bindings (called "XWIP") written by Ted Kim at UCLA while
  3866. supported in part by DARPA are available by anonymous FTP from
  3867. ftp.x.org:contrib/xwip.tar.Z or ftp.cs.ucla.edu:pub/xwip.tar.Z.
  3868. These prolog language bindings depend on having a Quintus-type foreign function
  3869. interface in your prolog. The developer has gotten it to work with Quintus and 
  3870. SICStus prolog. Inquiries should go to xwip@cs.ucla.edu. [3/90]
  3871.     Scheme bindings to Xlib, OSF/Motif, and Xaw are part of the Elk
  3872. distribution; version 1.5a on ftp.x.org obsoletes the version on the R5 contrib
  3873. tape. 
  3874.     TCL bindings to Motif 1.[12] by Jan Newmarch 
  3875. (jan@pandonia.canberra.edu.au) are on csc.canberra.edu.au and ftp.x.org. 
  3876. Version 0.8 became available 11/93.
  3877.     x-scm, a bolt-on accessory for Aubrey Jaffer's "scm" Scheme interpreter
  3878. that provides an interface to Xlib, Motif, and OpenLook, is now available via 
  3879. FTP from altdorf.ai.mit.edu:archive/scm/xscm1.05.tar.Z and 
  3880. nexus.yorku.ca:pub/scheme/new/xscm1.05.tar.Z.
  3881.  
  3882.     Poplog V14.2 is offered by Integral Solutions Ltd. (Phone +44 (0)256
  3883. 882028; Fax +44 (0)256 882182; Email isl@integ.uucp); it is an integrated
  3884. programming environment consisting of the programming languages Pop-11,
  3885. Prolog, Standard ML, and Lisp which are compiled to machine code via a common
  3886. virtual machine. Pop-11 provides an interface to the X Toolkit which can be
  3887. accessed from all other Poplog languages. The OLIT, Motif, and Athena widget
  3888. sets are supported, in addition to the custom Poplog (Xpw) widget set.
  3889. High-level Pop-11 libraries allow graph drawing, turtle graphics, and the
  3890. simple creation of basic button/menu based interfaces.
  3891.  
  3892.     Ada bindings to Motif, explicitly, will eventually be made available by
  3893. the Jet Propulsion Laboratories, probably through the normal electronic
  3894. means.  Advance information can be obtained from dsouleles@dsfvax.jpl.nasa.gov,
  3895. who may respond as time permits.
  3896.     AdaMotif is a complete binding to X and Motif for the Ada language, for
  3897. many common systems; it is based in part upon the SAIC/Unisys bindings and also
  3898. includes a UIL to Ada translator. Info: Systems Engineering Research 
  3899. Corporation, 1-800-Ada-SERC (well!serc@apple.com).
  3900.  
  3901.     Also: the MIT Consortium, although not involved in producing Ada
  3902. bindings for X, maintains a partial listing of people involved in X and Ada;
  3903. information is available from Donna Converse, converse@x.org.
  3904.  
  3905. ----------------------------------------------------------------------
  3906. Subject:  99)  TOPIC: BUILDING THE X DISTRIBUTION [topic needs updating to R5]
  3907. ----------------------------------------------------------------------
  3908. Subject: 100)  What's a good source of information on configuring the X build?
  3909.  
  3910.     This FAQ includes information on a number of "gotchas" that can bite 
  3911. you on particular system. However, the best source of general information on 
  3912. building the X11 release is found in the Release Notes. The file is bundled 
  3913. separately from the rest of the release, so if it's become separated from your 
  3914. sources you can FTP another copy separately: the file RELNOTES.[ms,PS,TXT] at 
  3915. the top of the distribution. The file RELNOTES is also available from the 
  3916. xstuff mail server.
  3917.     In addition, O'Reilly & Associates's Volume 8 on X Administration
  3918. includes information on configuring and building X.
  3919.  
  3920. ----------------------------------------------------------------------
  3921. Subject: 101)  Why doesn't my Sun with a cg6 work with R5?
  3922.  
  3923.     Apparently gcc is the problem; it seems to produce fine code for all
  3924. Sun displays except for the cgsix. The new sunGX.o distributed with fix-07 
  3925. may fix the problem (note: not known to work on Solaris).
  3926.  
  3927. ----------------------------------------------------------------------
  3928. Subject: 102)  Why doesn't my Sun with SunOS 4.1 know about _dlsym, etc.?
  3929.  
  3930.     If you get errors with _dlsym _dlopen _dlclose undefined, link with 
  3931. libdl.a.  Add "-ldl" to your and eventually to your site.def.  You may want to 
  3932. surround it with "-Bstatic -ldl -Bdynamic" if you add it to the EXTRA_LIBRARIES
  3933. variable, since "syslibs" get added after EXTRA_LIBRARIES on the eventual 
  3934. compilation command; otherwise you may not have a shared libdl.  (Or compile 
  3935. the stubs shared.)
  3936.  
  3937. [thanks to Joe Backo (joe.backo@East.Sun.COM), 12/91]
  3938.  
  3939. ----------------------------------------------------------------------
  3940. Subject: 103)  What is this "_get_wmShellWidgetClass undefined" error?
  3941.  
  3942.     In SunOS 4.1.2 Sun fixed a shared-library bug in ld which conflicts
  3943. with the way X builds the shared Xmu library, causing these symbols, notably, 
  3944. to be undefined when building some X11 clients on SunOS 4.1.[23]: 
  3945.     _get_wmShellWidgetClass
  3946.     _get_applicationShellWidgetClass
  3947. Compiling "-Bstatic -lXmu -Bdynamic" is overkill; be sure to set
  3948. OSTeenyVersion correctly in the config/sun.cf file and rebuild X11R5.
  3949.  
  3950. To solve the problem if you are using OpenWindows 3.0 (X11R4-based Xt), please 
  3951. contact your local Sun office and request the following patches:
  3952.  
  3953. Patch i.d.      Description
  3954. 100512-02       4.1.x OpenWindows 3.0 libXt Jumbo patch
  3955. 100573-03       4.1.x OpenWindows 3.0 undefined symbols when using
  3956.                         shared libXmu
  3957.  
  3958. [Greg Earle, earle@Sun.COM; 7/92] 
  3959.  
  3960. A source patch for use with the X11R4 libraries was developed by Conrad 
  3961. Kimball (cek@sdc.boeing.com); it retrofits into R4 some fixes made in R5 to
  3962. get around this problem. The patch is on ftp.x.org in [1/93]
  3963.     contrib/X11R4_sunos4.1.2_patch_version3.Z
  3964.  
  3965. ----------------------------------------------------------------------
  3966. Subject: 104)  What's this problem with undefined _X symbols on SunOS 4.1.3?
  3967.  
  3968.         Make sure to set the OSTeenyVersion in the mit/config/sun.cf file
  3969. if you see that vast numbers of Xlib functions are undefined:
  3970.  
  3971.   >cc -o bmtoa bmtoa.o -O -pipe  -L../.././lib/Xmu -lXmu -L/work1/X11R5/lib
  3972.   >ld: Undefined symbol
  3973.   >   _XGetVisualInfo
  3974.   >   _XFree
  3975.     ...
  3976.  
  3977. ----------------------------------------------------------------------
  3978. Subject: 105)  Why does cc get used when I build X11R5 with gcc?
  3979.  
  3980.     When X11R5 was written gcc (version 1.X) did not support shared 
  3981. libraries. Those parts requiring shared libraries are compiled with cc, those 
  3982. that don't are compiled with gcc.
  3983.   
  3984. ----------------------------------------------------------------------
  3985. Subject: 106)  Why can't gcc 1.x compile X11R4 on my SPARC?
  3986. I used gcc to compile the whole distribution, but I get several segmentation
  3987. faults when running X.
  3988.  
  3989.     Note first that gcc on RISC machines does not necessarily result in
  3990. any performance increase; it certainly is not as noticeable as it is on the
  3991. 680x0 or VAX platforms.
  3992.  
  3993.     Here is the problem: gcc and cc use incompatible methods of passing 
  3994. structures as arguments and returning them as function values, so when 
  3995. gcc-compiled parts of X are linked with Sun-supplied functions that pass or 
  3996. return structs, run-time errors occur.  Affected programs include rgb and 
  3997. the server.
  3998.  
  3999.     This is from the GCC manual:
  4000.  
  4001.     On the Sparc, GNU CC uses an incompatible calling convention for 
  4002.     structures.  It passes them by including their contents in the argument
  4003.     list, whereas the standard compiler passes them effectively by 
  4004.     reference.
  4005.  
  4006.     This really ought to be fixed, but such calling conventions are not yet
  4007.     supported in GNU CC, so it isn't straightforward to fix it.
  4008.  
  4009.     The convention for structure returning is also incompatible, and
  4010.     `-fpcc-struct-return' does not help.
  4011.  
  4012. You can duck the problem either by using cc throughout or by using it for just
  4013. the routines which cause incompatibilities; the problem cannot be solved with 
  4014. compilation flags.  
  4015.  
  4016.     Files which need to be compiled using cc include:
  4017.         server/os/4.2bsd/oscolor.c 
  4018.         rgb/rgb.c
  4019.  
  4020.     In addition, several of the "inet_" functions use structs as args or
  4021. return values:  
  4022.         clients/xhost/xhost.c 
  4023.         clients/xauth/gethost.c. 
  4024. Calls to inet_addr in /lib/CLX/socket.c and lib/X/XConnDis.c are possibly 
  4025. harmless as they don't involve structs.
  4026.  
  4027. [collected by bashford@scripps.edu (Don Bashford); 8/90]
  4028.  
  4029. ----------------------------------------------------------------------
  4030. Subject: 107)  What are these I/O errors running X built with gcc?
  4031. When I try to run xinit or the Xsun server I get the error 
  4032.     "Getting interface configuration: Operation not supported on socket. 
  4033.     Fatal server bug! no screens found."
  4034.  
  4035.     Running the gcc fixincludes script apparently didn't work. You can do 
  4036. this simple test:
  4037.  
  4038.     #include <sys/ioctl.h>
  4039.     SIOCGIFCONF
  4040.  
  4041. Run that through cc -E and gcc -E.  The last line of output is the piece of 
  4042. interest; it should be identical (modulo irrelevant differences like 
  4043. whitespace).  If the gcc version has 'x' where the cc version has 'i', your 
  4044. fixincludes run didn't work for some reason or other; go back to your gcc
  4045. sources and run `fixincludes`; then rebuild the X distribution. If they are 
  4046. identical, try running a make clean in mit/server and rebuilding, just to make 
  4047. sure everything gets compiled with the proper include files.  
  4048.  
  4049. [courtesy der Mouse, mouse@LARRY.MCRCIM.MCGILL.EDU; 9/90]
  4050.  
  4051. ----------------------------------------------------------------------
  4052. Subject: 108)  What are these problems compiling X11R4 on the older Sun3?
  4053. In mit/server/ddx/sun/sunCG3C.c, we have found "missing" defines for 
  4054. CG3AC_MONOLEN, CG3BC_MONOLEN, CG3AC_ENBLEN, CG3BC_ENBLEN. What should these be?
  4055.  
  4056.     The R4 Errata list distributed after X11R4 mentions that you can add
  4057. these lines to the file on older SunOS versions (e.g. 3.5) to compile:
  4058.         #define CG3AC_MONOLEN (128*1024)
  4059.         #define CG3AC_ENBLEN  CG3AC_MONOLEN
  4060.         #define CG3BC_MONOLEN CG3AC_MONOLEN
  4061.         #define CG3BC_ENBLEN  CG3AC_MONOLEN
  4062.  
  4063.     However, the Sun3 should not actually ever have the CG3 device, and so 
  4064. references to it can be removed from mit/server/ddx/sun/sunInit.c and the 
  4065. Imakefile.  [11/90]
  4066.  
  4067. ----------------------------------------------------------------------
  4068. Subject: 109)  What are these problems compiling the X server on SunOS 4.1.1?
  4069. The file <sundev/cg6reg.h> isn't being found.
  4070.  
  4071.     Sun omitted <sundev/cg6reg.h> from SunOS 4.1.1. Remove the #include 
  4072. from sunCG6C.c and replace it with the line 
  4073.     #define CG6_VADDR_COLOR   0x70016000
  4074. The file has changed from earlier versions of SunOS and should not be copied 
  4075. from another distribution.
  4076.  
  4077. ----------------------------------------------------------------------
  4078. Subject: 110)  What are these problems using R4 shared libraries on SunOS 4?
  4079. All of the executables that I try to run have the following results:
  4080.     ld.so: libXmu.so.4: not found
  4081. or even:
  4082.     ld.so: call to undefined procedure __GetHostname from 0xf776a96c
  4083.  
  4084.     If you are building with shared libraries on a Sun, remember that you 
  4085. need to run "ldconfig" as root after installing the shared libraries (if you've
  4086. installed X on a file-server, run it on the server's clients, too).  While 
  4087. building and installing the distribution, you need to be careful to avoid 
  4088. linking against any existing X shared libraries you might have (e.g. those 
  4089. distributed with OpenWindows).  You should make sure you do not have 
  4090. LD_LIBRARY_PATH set in your environment during the build or the installation.  
  4091. If you are going to keep xterm and xload as setuid programs, please note that 
  4092. the shared libraries must be installed in /usr/lib, /usr/local/lib, or 
  4093. /usr/5lib for these programs to work (or else those programs must be linked 
  4094. statically). [courtesy X Consortium]
  4095.     Note also that the program mkfontdir is run as part of the build; it
  4096. attempts, however, to use the shared libraries before they have been installed.
  4097. You can avoid the errors by building mkfontdir statically (pass -Bstatic to
  4098. most C compilers).
  4099.  
  4100. ----------------------------------------------------------------------
  4101. Subject: 111)  Can OLIT programs run with R5 Xt? (_XtQString undefined)
  4102.  
  4103. This is a bug in the OLIT.  _XtQString was an external symbol that existed in 
  4104. X11R4 (upon which OW 3.0's libXt is based).  It wasn't documented and was 
  4105. removed in X11R5 (MIT's guarantee of upward compatibility between the R4 and R5
  4106. libraries only applied to the documented interface).  
  4107.  
  4108. A workaround is to temporarily set your LD_LIBRARY_PATH to point to the X11R4
  4109. or OpenWindows Xt library that you linked the program against.
  4110.  
  4111. [10/92; from Barry Margolin (barmar@think.com); 3/93 from Jeff Francis 
  4112. (jpf@heliocentric.com)]
  4113.  
  4114. ----------------------------------------------------------------------
  4115. Subject: 112)  How do I get around the SunOS 4.1 security hole?
  4116.  
  4117.     There is a security problem with certain R4 clients (xterm and xload)
  4118. running under SunOS 4.1 that have been installed setuid root and are using 
  4119. shared libraries; to avoid the problem, do one of these:
  4120.     1) make the program non-setuid. You should consult your system
  4121. administrator concerning protection of resources (e.g. ptys and /dev/kmem) used
  4122. by these programs, to make sure that you do not create additional security 
  4123. problems at your site.
  4124.     2) relink the programs statically (using -Bstatic).
  4125.     3) install the libraries before linking and link with absolute paths
  4126. to the libraries.
  4127.  
  4128. [from rws@x.org (Bob Scheifler), 12/90]
  4129.  
  4130. The R5 version of xterm does this automatically by rebuilding xterm against the
  4131. newly-installed libraries when xterm is being installed; this prevents an suid
  4132. program from being built with libraries specified relatively. Note that this 
  4133. may cause an inconvenience when doing the installation from NFS-mounted disks. 
  4134. Xload has been rewritten to avoid the problem.
  4135.  
  4136. ----------------------------------------------------------------------
  4137. Subject: 113)  How do I get around the frame-buffer security hole?
  4138.  
  4139.     On many systems the frame-buffer is unsecured by default; this permits 
  4140. anyone who can log into your workstation to peek at your windowing session by 
  4141. accessing the frame-buffer directly, or, as less of a privacy issue but perhaps
  4142. more annoying, to [accidentally] start up a second X session on your console 
  4143. display. Check the man page for fbtab(5).
  4144.  
  4145. [Thanks to Art Mulder (art@cs.ualberta.ca); 2/93.]
  4146.  
  4147. ----------------------------------------------------------------------
  4148. Subject: 114)  TOPIC: BUILDING X PROGRAMS 
  4149. ----------------------------------------------------------------------
  4150. Subject: 115)  What is Imake?
  4151.  
  4152.     Imake is not a replacement for the make program; instead, it is a
  4153. makefile-generator that takes advantages of the include-file and macro-
  4154. processing capabilities of the C preprocessor cpp to generate makefiles 
  4155. suitable for building software on a particular system. Although it is not 
  4156. specific to X, the X release uses it to help solve a number of the 
  4157. configuration issues that arise in making such a large system widely portable.
  4158.     Imake has a fairly steep learning curve, in part because the process by
  4159. which the system-specific configuration files, system-independent configuration
  4160. files, and individual Imakefiles are melded to produce a Makefile is not 
  4161. obvious.
  4162.     There have been several different versions of imake; the R3, R4, and
  4163. R5 versions are different.
  4164.  
  4165.     You can obtain information on imake from these sources:
  4166.     - the R4 and R5 release notes and imake man page include information on
  4167. using Imake to build X
  4168.     - the R4 and R5 file mit/config/README also contains useful information
  4169.     - on the R4 tapes, contrib/doc/imake/imake.tex is Mark Moraes' R3/R4
  4170. guide to imake.
  4171.     - the R5 mit/doc/config/usenixws/paper.ms contains a paper by Jim
  4172. Fulton on an early version of Imake
  4173.     - Paul DuBois (dubois@primate.wisc.edu) has written a useful 
  4174. explanation of how Imake works and how to use it in configuring X for non-
  4175. supported systems; the document is available from ftp.primate.wisc.edu
  4176. in the directory ~ftp/pub/imake-stuff; look for config-X11R4.ms (troff) and 
  4177. config-X11R4.ps (PostScript). Some supplemental appendices are nearby. 
  4178. [7/91: document version is now 1.06] These imake papers are available by email;
  4179. mail a message body of "send imake-stuff help" to almanac@primate.wisc.edu.
  4180. They are also available by gopher to gopher.primate.wisc.edu under "Primate 
  4181. Center Software Archives".
  4182.     - see "System Administration - Imake: Friend or Foe?" by Dinah McNutt
  4183. in the November 1991 issue of SunExpert.
  4184.     - German readers should expect in June 1992 an article "Das Meta-Make 
  4185. / I make, you make / Schwerelos" by Rainer Klute in "iX 
  4186. Multiuser-Multitasking-Magazin", directed at application programmers needing to
  4187. write Imakefiles. An English-language derivative of this article is in The
  4188. X Journal, issue 2:1.
  4189.     - The O'Reilly X Resource issue #2 contains Paul Davey's article on
  4190. demystifying Imake.
  4191.     - Alain Brossard's working document full of tips on Imake is in 
  4192. sasun1.epfl.ch:pub/imakefile.1.Z.
  4193.     - O'Reilly has published (7/93) "Software Portability with imake" by 
  4194. Paul DuBois; ISBN 1-56592-055-4. The books electronic counterparts are on
  4195. ftp.primate.wisc.edu in pub/imake-book; imake.tar.Z is a stand-alone imake
  4196. installation.
  4197.  
  4198. [1/91;12/91;5/92;8/92;7/93]
  4199.  
  4200. ----------------------------------------------------------------------
  4201. Subject: 116)  Where can I get imake?
  4202.  
  4203.     Versions are distributed with the R4 and R5 releases. An earlier 
  4204. version is distributed with the X11R3 release; some third-party toolkits 
  4205. redistribute versions of imake along with their own implementations of the 
  4206. template and configuration files. There are no real standards for such 
  4207. configuration files, although most *current* contributed software expects the 
  4208. templates distributed with X11R5.
  4209.     ftp.x.org contains the R5 distribution unpacked, so you can pick up 
  4210. imake without picking up the entire distribution.
  4211.     A stand-alone version of Imake, but one stemming from X11R5, is in
  4212. ftp.germany.eu.net:pub/X11/misc/imake/imake-pure.tar.Z (192.76.144.75).
  4213.     A stand-alone version of Imake, but one stemming from X11R5, is in
  4214. ftp.primate.wisc.edu:pub/imake-book/imake.tar.Z.
  4215.  
  4216. ----------------------------------------------------------------------
  4217. Subject: 117)  I have a program with an Imakefile but no Makefile. What to do?
  4218.  
  4219.     If you have R4 or R5 installed on your system, run "xmkmf". This is a 
  4220. script which runs imake for you with the correct arguments. The output is a 
  4221. Makefile configured for your system and based on the Imakefile. Then run make, 
  4222. which will use that new Makefile to compile the program.
  4223.  
  4224. ----------------------------------------------------------------------
  4225. Subject: 118)  Why can't I link to the Xlib shape routines?
  4226. When I try to compile certain programs, I get the following link error:
  4227.     Undefined:
  4228.     _XShapeQueryExtension
  4229.     _XShapeCombineMask
  4230.  
  4231.     These routines are actually part of the Shape Extension to X (SHAPE)
  4232. which was introduced in the X11R4 distribution and allows non-rectangular
  4233. windows.  Like the other sample server extensions, the shape extension will 
  4234. only run on a server which supports it.  Pre-X11R4 servers, as well as many 
  4235. vendor-supplied servers, do not support the shape extension, in which case 
  4236. they will display rectangular windows anyway.
  4237.  
  4238.     In order to use the shape extension, you must link to the library 
  4239. libXext.a.  In the X11R4 distribution, this library and the associated includes
  4240. will be in the mit/extensions directory.  If you do not have these files, do 
  4241. not despair:  many freeware programs which use the shape extension can also be 
  4242. compiled without it by removing the -DSHAPE define from the Makefile; you can
  4243. probably do this and compile successfully against your older vendor-supplied X 
  4244. libraries.
  4245.  
  4246. [from John B. Melby, melby%yk.fujitsu.co.jp@uunet.uu.net, 3/91]
  4247.  
  4248. ----------------------------------------------------------------------
  4249. Subject: 119)  What are these problems with "_XtInherit not found" on the Sun?
  4250. When I link a X program that I wrote on a SunOS 4.0.3 or 4.1 machine I get the 
  4251. error "ld.so: symbol not found _XtInherit".
  4252.  
  4253.     What you are seeing is a side-effect of a kludge in the R4 libXt.a to 
  4254. get Sun shared libraries working.  Apparently, you can't share a function that 
  4255. is both called and compared, as _XtInherit is. This was handled by putting 
  4256. _XtInherit in the same file as a function that is always used, thereby 
  4257. guaranteeing that it would be loaded -- that is, in Initialize.c, where 
  4258. XtToolkitInitialize() and XtInitialize() reside. These routines would normally
  4259. be called.
  4260.  
  4261.     You are probably seeing this error because your program is not a normal
  4262. Xt-based program and does not call XtToolkitInitialize() anywhere. 
  4263.     1) it may be a program that uses Xt functions but never opens a 
  4264. connection to the X server.  [OSF/Motif's 1.1.0 UIL had this problem; it called
  4265. XtMalloc() and other Xt functions.] The solution is to add the call to your 
  4266. program; the function does not have to be executed, just linked in.
  4267.     2) alternatively, your program doesn't need any Xt functions and is
  4268. correct in not calling XtToolkitInitialize() -- it may be an Xlib or XView 
  4269. program. In this case, you can remove -lXt from your link command. 
  4270.  
  4271.     It should not be necessary to link the shared libraries statically,
  4272. although this will certainly solve the problem.
  4273.     
  4274. [from Jordan Hayes (now jordan@MooreNet.COM) and Danny Backx (db@sunbim.be); 
  4275. 11/90]
  4276.  
  4277. You may also see this error compiling X11R5 programs on a SunOS 4.1.3 machine;
  4278. be sure to set OSTeenyVersion to 3 in the config/sun.cf file.
  4279.  
  4280. ----------------------------------------------------------------------
  4281. Subject: 120)  TOPIC: PROGRAMMING PROBLEMS AND PUZZLES
  4282. ----------------------------------------------------------------------
  4283. Subject: 121)  Why doesn't my program get the keystrokes I select for (sic)?
  4284.  
  4285.     The window manager controls how the input focus is transferred from one
  4286. window to another.  In order to get keystrokes, your program must ask the
  4287. window manager for the input focus.  To do this, you must set up what are
  4288. called "hints" for the window manager.  If your applications is Xlib-based, you
  4289. can use something like the following:
  4290.  
  4291.         XWMHints wmhints;
  4292.         ...
  4293.         wmhints.flags = InputHint;
  4294.         wmhints.input = True;
  4295.         XSetWMHints(dpy, window, &wmhints)
  4296.  
  4297. If your application is based on the Xt Intrinsics, you can set the XtNinput 
  4298. resource to be True (as you probably want to in any case); if you don't have
  4299. source, you can start up the application with the resource '*input:True'.
  4300.  
  4301. Certain window managers, notably dxwm and olwm, are very picky about having 
  4302. this done. 
  4303.  
  4304.     If you are using Sun's OpenWindows olwm, you can also add this resource
  4305. to your defaults file to use clients that aren't ICCCM-compliant.
  4306.     OpenWindows.FocusLenience:       true
  4307.  
  4308. [mostly courtesy Dave Lemke of NCD and Stuart Marks of Sun]
  4309.  
  4310. ----------------------------------------------------------------------
  4311. Subject: 122)  How do I deiconify a window?
  4312.  
  4313. To de-iconify a window, map it with XMapWindow().  To iconify a window, use 
  4314. XIconifyWindow().
  4315.  
  4316. ----------------------------------------------------------------------
  4317. Subject: 123)  How do I figure out what window manager is running?
  4318.  
  4319.     You can't reliably tell; whatever mechanism you could use could be
  4320. spoofed in any case. 
  4321.     For most cases, you shouldn't care which window manager is running, so 
  4322. long as you do things in an ICCCM-conformant manner. There are some cases in 
  4323. which particular window managers are known to do things wrong; checking for
  4324. particular hints placed on the window by the window manager so that you can 
  4325. sidestep the problem may be appropriate in these cases. Alternatively, it may 
  4326. be appropriate to determine which window manager is running in order to take
  4327. advantage of specific *added* features (such as olwm's push-pin menus) in order
  4328. to give your program *added* functionality. Beware of usurping the window 
  4329. manager's functions by providing that functionality even when it is missing;
  4330. this surely leads to future compatibility problems.
  4331.  
  4332. ----------------------------------------------------------------------
  4333. Subject: 124)  Is there a skeleton X program available?
  4334.     
  4335.     There is no general framework such as the TransSkel program for the 
  4336. Macintosh which handles lots of the odds and ends and overhead of development 
  4337. under a window system and which can be used as a platform for additional 
  4338. development. In X, the problem is typically solved by using an interactive 
  4339. application builder tool or by using cut&paste on existing X applications. Good
  4340. applications which you might look to manipulate when you want to "test just 
  4341. this one little thing" include contrib/clients/xskel, a simple R4 program that 
  4342. puts up a window and allows sketching in it and offers a starting point for
  4343. quick hacks, the Xaw examples in the examples/ directory in the R3 and R4 
  4344. distributions, and the Xlib "Hello World" example in the R3 doc/HelloWorld and 
  4345. R4 doc/tutorials/HelloWorld; an updated version of this program which uses R4 
  4346. Xlib calls and current ICCCM conventions was posted in 2/90 to comp.windows.x  
  4347. by Glenn Widener of Tektronix.     [3/90]
  4348.  
  4349.     In addition, a sample Xt program (for Xaw or Xm) by Rainer Klute 
  4350. showing how to open multiple displays and how to catch a broken display 
  4351. connection is available on ftp.x.org in contrib/mdisp.tar.Z. [4/92] 
  4352.     A sample multi-display Xt/Xaw program by Oliver Jones is on ftp.x.org
  4353. in contrib/MultiUserVote.tar.Z. (See also his article in The X Resource, Issue 
  4354. 3, "Multi-User Application Software Using Xt".)
  4355.  
  4356. ----------------------------------------------------------------------
  4357. Subject: 125)  Why does XtGetValues not work for me (sic)?
  4358.  
  4359.     The XtGetValues interface for retrieving resources from a widget is
  4360. sensitive to the type of variable. Your code may be doing something like this:
  4361.     {
  4362.     Arg args[3];
  4363.     int i;
  4364.     int sensitive;        /* oops; wrong data type */
  4365.     i=0;
  4366.     XtSetArg (args[i], XtNsensitive, &sensitive); i++;
  4367.     XtGetValues(widget, args, i );
  4368.     ...
  4369.     }
  4370.  
  4371. But XtNsensitive is a Boolean, which on most machines is a single byte; 
  4372. declaring the variable "sensitive" as Boolean works properly. This problem 
  4373. comes up often when using particular toolkits that redefine the Xt types 
  4374. Dimension and Position; code that assumes they are int will have similar 
  4375. problems if those types are actually short. In general: you are safe if you
  4376. use the actual type of the resource, as it appears in the widget's man page.
  4377. [11/90]
  4378.  
  4379. ----------------------------------------------------------------------
  4380. Subject: 126)  Why don't XtConfigureWidget/XtResizeWidget/XtMoveWidget work?
  4381.  
  4382.     You're probably trying to use these functions from application code.
  4383. They should be used only internally to widgets; these functions are for a
  4384. parent Composite widget to change the geometry of its children.  An
  4385. application which calls XtMoveWidget, for example, effectively defeats
  4386. geometry negotiation and the Composite parent's internal state (if any) will
  4387. no longer be correct. (The Xt specification goes into more detail.)
  4388.     The only way for your application to request a geometry change for a
  4389. widget is to issue an XtSetValues call setting some of the geometry
  4390. resources.  Although this call will result in the widget-internal functions'
  4391. being called, your application code must use the standard XtSetValues
  4392. interface or risk the widgets' data becoming corrupted.
  4393.     Note that functions defined in <X11/IntrinsicP.h>, as these are, are
  4394. typically reserved for use by widgets.
  4395.     Other promising functions, XtMakeGeometryRequest() and
  4396. XtMakeResizeRequest(), are also for use only by widgets, in this case by a
  4397. child to request a change from its parent.
  4398.     The Xlib calls XMoveWindow() and XResizeWindow() should similarly be 
  4399. avoided; they shouldn't be used to change XtNx, XtNy, XtNwidth, or XtNheight.
  4400.  
  4401. ----------------------------------------------------------------------
  4402. Subject: 127)  Why isn't there an XtReparentWidget call like XReparentWindow?
  4403.  
  4404.     Although there are various details of the current implementation of
  4405. the Xt internals which make reparenting difficult, the major reason that no
  4406. such call exists is that it remains undefined what the set of resources for
  4407. the "new" widget should be. Resources are typically set based on the location
  4408. in the instance hierarchy; what resources should change if the instance moves?
  4409. What should happen to the widget's children? And by the time such semantics are
  4410. defined, there would probably be little advantage over destroying the old 
  4411. widget and creating a new widget in the correct location with the desired 
  4412. resources, as setting the resources correctly is the majority of work in 
  4413. creating a new widget. 
  4414.  
  4415.     Note that reparenting is possible in the OI toolkit.
  4416.  
  4417. ----------------------------------------------------------------------
  4418. Subject: 128)  I'm writing a widget and can't use a float as a resource value.
  4419.  
  4420. Float resources are not portable; the size of the value may be larger than
  4421. the size of an XtPointer. Try using a pointer to a float instead; the Xaw
  4422. Scrollbar float resources are handled in this way. 
  4423.  
  4424. ----------------------------------------------------------------------
  4425. Subject: 129)  Is this a memory leak in the X11R4 XtDestroyWidget()?!
  4426.  
  4427. Yes. This is the "unofficial" fix-19 for the X11R4 Destroy.c:
  4428.  
  4429. *** Destroy.c.1.37    Thu Jul 11 15:41:25 1991
  4430. --- lib/Xt/Destroy.c    Thu Jul 11 15:42:23 1991
  4431. ***************
  4432. *** 1,4 ****
  4433. --- 1,5 ----
  4434.   /* $XConsortium: Destroy.c,v 1.37 90/09/28 10:21:32 swick Exp $ */
  4435. + /* Plus unofficial patches in revisions 1.40 and 1.41 */
  4436.   
  4437.   /***********************************************************
  4438.   Copyright 1987, 1988 by Digital Equipment Corporation, Maynard, Massachusetts,
  4439. ***************
  4440. *** 221,239 ****
  4441.        */
  4442.   
  4443.       int i = 0;
  4444. !     DestroyRec* dr = app->destroy_list;
  4445.       while (i < app->destroy_count) {
  4446.       if (dr->dispatch_level >= dispatch_level)  {
  4447.           Widget w = dr->widget;
  4448.           if (--app->destroy_count)
  4449.           bcopy( (char*)(dr+1), (char*)dr,
  4450. !                app->destroy_count*sizeof(DestroyRec)
  4451.                 );
  4452.           XtPhase2Destroy(w);
  4453.       }
  4454.       else {
  4455.           i++;
  4456. -         dr++;
  4457.       }
  4458.       }
  4459.   }
  4460. --- 222,245 ----
  4461.        */
  4462.   
  4463.       int i = 0;
  4464. !     DestroyRec* dr;
  4465.       while (i < app->destroy_count) {
  4466. +     /* XtPhase2Destroy can result in calls to XtDestroyWidget,
  4467. +      * and these could cause app->destroy_list to be reallocated.
  4468. +      */
  4469. +     dr = app->destroy_list + i;
  4470.       if (dr->dispatch_level >= dispatch_level)  {
  4471.           Widget w = dr->widget;
  4472.           if (--app->destroy_count)
  4473.           bcopy( (char*)(dr+1), (char*)dr,
  4474. !                (app->destroy_count - i) * sizeof(DestroyRec)
  4475.                 );
  4476.           XtPhase2Destroy(w);
  4477.       }
  4478.       else {
  4479.           i++;
  4480.       }
  4481.       }
  4482.   }
  4483.  
  4484. [from Donna Converse, converse@x.org]
  4485.  
  4486. ----------------------------------------------------------------------
  4487. Subject: 130)  Is this a memory leak in the X11R4 deletion of work procs?!
  4488.  
  4489. Apparently the X11R4 NextEvent.c`CallWorkProc fails to properly replace
  4490. the work proc record back on the free list correctly.
  4491.  
  4492.         if (delete) {
  4493.             w->next = freeWorkRecs;
  4494.             freeWorkRecs = w->next;    /* should be  =w; */
  4495.         }
  4496.  
  4497. ----------------------------------------------------------------------
  4498. Subject: 131)  Why does the process size of my X programs go up,up,up?
  4499.  
  4500. Using "ps" may not show any decrease in memory size after a malloc/free pair. 
  4501. With most vendors' implementations of memory managers, the call to free does 
  4502. not return memory to the operating system; it is probably maintained on a free 
  4503. list for the process. In addition, ps may not be an accurate report of current
  4504. memory usage requirements.
  4505.  
  4506. ----------------------------------------------------------------------
  4507. Subject: 132)  Are callbacks guaranteed to be called in the order registered?
  4508.  
  4509.     Although some books demonstrate that the current implementation of Xt
  4510. happens to call callback procedures in the order in which they are registered, 
  4511. the specification does not guarantee such a sequence, and supplemental 
  4512. authoritative documents (i.e. the Asente/Swick volume) do say that the order is
  4513. undefined.  Because the callback list can be manipulated by both the widget and
  4514. the application, Xt cannot guarantee the order of execution.
  4515.     In general, the callback procedures should be thought of as operating 
  4516. independently of one another and should not depend on side-effects of other
  4517. callbacks operating; if a seqence is needed, then the single callback to be 
  4518. registered can explicitly call other functions necessary.
  4519.  
  4520. [4/92; thanks to converse@x.org]
  4521.  
  4522. ----------------------------------------------------------------------
  4523. Subject: 133)  Why doesn't XtDestroyWidget() actually destroy the widget?
  4524.  
  4525.     XtDestroyWidget() operates in two passes, in order to avoid leaving
  4526. dangling data structures; the function-call marks the widget, which is not 
  4527. actually destroyed until your program returns to its event-loop. 
  4528.  
  4529. ----------------------------------------------------------------------
  4530. Subject: 134)  How do I query the user synchronously using Xt?
  4531.     
  4532.     It is possible to have code which looks like this trivial callback,
  4533. which has a clear flow of control. The calls to AskUser() block until answer
  4534. is set to one of the valid values. If it is not a "yes" answer, the code drops
  4535. out of the callback and back to an event-processing loop: 
  4536.  
  4537.     void quit(Widget w, XtPointer client, XtPointer call)
  4538.     {
  4539.         int             answer;
  4540.         answer = AskUser(w, "Really Quit?");
  4541.         if (RET_YES == answer)
  4542.             {
  4543.             answer = AskUser(w, "Are You Really Positive?");
  4544.             if (RET_YES == answer)
  4545.                 exit(0);
  4546.                 }
  4547.     }
  4548.  
  4549.     A more realistic example might ask whether to create a file or whether 
  4550. to overwrite it.
  4551.     This is accomplished by entering a second event-processing loop and
  4552. waiting until the user answers the question; the answer is returned to the
  4553. calling function. That function AskUser() looks something like this, where the 
  4554. Motif can be replaced with widget-set-specific code to create some sort of 
  4555. dialog-box displaying the question string and buttons for "OK", "Cancel" and 
  4556. "Help" or equivalents:
  4557.  
  4558.   int AskUser(w, string)
  4559.         Widget          w;
  4560.         char           *string;
  4561.   {
  4562.         int             answer=RET_NONE;    /* some not-used marker */
  4563.         Widget          dialog;            /* could cache&carry, but ...*/
  4564.         Arg             args[3];
  4565.         int             n = 0;
  4566.         XtAppContext    context;
  4567.  
  4568.         n=0;
  4569.         XtSetArg(args[n], XmNmessageString, XmStringCreateLtoR(string,
  4570.                 XmSTRING_DEFAULT_CHARSET)); n++;
  4571.         XtSetArg(args[n], XmNdialogStyle, XmDIALOG_APPLICATION_MODAL); n++;
  4572.         dialog = XmCreateQuestionDialog(XtParent(w), string, args, n);
  4573.         XtAddCallback(dialog, XmNokCallback, response, &answer);
  4574.         XtAddCallback(dialog, XmNcancelCallback, response, &answer);
  4575.         XtAddCallback(dialog, XmNhelpCallback, response, &answer);
  4576.         XtManageChild(dialog);
  4577.  
  4578.         context = XtWidgetToApplicationContext (w);
  4579.         while (answer == RET_NONE || XtAppPending(context)) {
  4580.                 XtAppProcessEvent (context, XtIMAll);
  4581.         }
  4582.         XtDestroyWidget(dialog);  /* blow away the dialog box and shell */
  4583.         return answer;
  4584.   }
  4585.  
  4586.     The dialog supports three buttons, which are set to call the same 
  4587. function when tickled by the user.  The variable answer is set when the user 
  4588. finally selects one of those choices:
  4589.  
  4590.   void response(w, client, call)
  4591.         Widget          w;
  4592.         XtPointer client;
  4593.         XtPointer call;
  4594.   {
  4595.   int *answer = (int *) client;
  4596.   XmAnyCallbackStruct *reason = (XmAnyCallbackStruct *) call;
  4597.         switch (reason->reason) {
  4598.         case XmCR_OK:
  4599.                 *answer = RET_YES;    /* some #define value */
  4600.                 break;
  4601.         case XmCR_CANCEL:
  4602.                 *answer = RET_NO; 
  4603.         break;
  4604.         case XmCR_HELP:
  4605.                 *answer = RET_HELP;
  4606.                 break;
  4607.         default:
  4608.                 return;
  4609.         }
  4610. }
  4611.  
  4612. and the code unwraps back to the point at which an answer was needed and
  4613. continues from there.
  4614.  
  4615. [Thanks to Dan Heller (argv@sun.com); note that the code in his book caches
  4616. the dialog but neglects to make sure that the callbacks point to the
  4617. current automatic "answer".]
  4618.  
  4619. ----------------------------------------------------------------------
  4620. Subject: 135)  How do I determine the name of an existing widget?
  4621. I have a widget ID and need to know what the name of that widget is.
  4622.  
  4623.     Users of R4 and later are best off using the XtName() function, which 
  4624. will work on both widgets and non-widget objects.
  4625.  
  4626.     If you are still using R3, you can use this simple bit of code to do 
  4627. what you want. Note that it depends on the widget's internal data structures 
  4628. and is not necessarily portable to future versions of Xt, including R4.
  4629.  
  4630.     #include <X11/CoreP.h>
  4631.     #include <X11/Xresource.h>
  4632.     String XtName (widget)
  4633.     Widget widget;    /* WILL work with non-widget objects */
  4634.     {
  4635.     return XrmNameToString(widget->core.xrm_name);
  4636.     }
  4637.  
  4638. [7/90; modified with suggestion by Larry Rogers (larry@boris.webo.dg.com) 9/91]
  4639.  
  4640. ----------------------------------------------------------------------
  4641. Subject: 136)  Why do I get a BadDrawable error drawing to XtWindow(widget)?
  4642. I'm doing this in order to get a window into which I can do Xlib graphics
  4643. within my Xt-based program:
  4644.  
  4645. > canvas = XtCreateManagedWidget ( ...,widgetClass,...) /* drawing area */
  4646. > ...
  4647. > window = XtWindow(canvas);    /* get the window associated with the widget */
  4648. > ...
  4649. > XDrawLine (...,window,...);    /* produces error */
  4650.  
  4651.     The window associated with the widget is created as a part of the 
  4652. realization of the widget.  Using a window id of None ("no window") could 
  4653. create the error that you describe.  It is necessary to call XtRealizeWidget() 
  4654. before attempting to use the window associated with a widget. 
  4655.     Note that the window will be created after the XtRealizeWidget() call, 
  4656. but that the server may not have actually mapped it yet, so you should also 
  4657. wait for an Expose event on the window before drawing into it.
  4658.  
  4659. ----------------------------------------------------------------------
  4660. Subject: 137)  Where can I get documentation on Xaw, the Athena widget set?
  4661.  
  4662.     Check ftp.x.org in /pub/R5untarred/mit/hardcopy for the originals
  4663. of documentation distributed with X11R5.
  4664.  
  4665. ----------------------------------------------------------------------
  4666. Subject: 138)  What's the difference between actions and callbacks?
  4667.  
  4668. Actions and callbacks may be closely tied; the user may click a mouse-button
  4669. in an object's window, causing an action procedure in that particular object
  4670. to be called. As part of its processing of the event, the action procedure
  4671. may inform the application via a callback registered on the object. However,
  4672. callbacks can be given for any reason, including some that don't arise as a
  4673. result of user action; and many actions don't result in any notification to
  4674. the application.
  4675.  
  4676. Callbacks generally are a means of interaction between the user interface
  4677. (UI) and some other piece of code interested in the "results"; the interested
  4678. party to which the data is communicated is usually the application's back-end
  4679. functions but may be another widget in a related part of the UI.  For
  4680. example, a text widget invokes a callback to say "the user just entered this
  4681. text string; never mind what I had to do to get it or what X events took
  4682. place."
  4683.  
  4684. In object-oriented programming terminology, callback lists are messages
  4685. defined by the widget class by which the widget istance notifies another
  4686. entity that something significant has happened to the widget.
  4687.  
  4688. Actions, however, constitute a widget's repertoire of internal i/o
  4689. behaviors.  Actions are not about results; actions are about "how", not
  4690. "what" gets done. The text widget may define a dozen or two actions which
  4691. define how the user can manipulate the text; the procedures for removing a
  4692. line of text or switching two words can be associated with particular X event
  4693. sequences (and in fact often rely on particular types of events).
  4694.  
  4695. Actions are (in OOP terminology) methods of the widget class by which the
  4696. widget responds to some external stimulus (one or more X events).
  4697.  
  4698. To avoid confusing yourself on the issue of actions vs. callbacks, try
  4699. thinking of actions defined by an application as methods *of the application*
  4700. -- applications may define actions, as well -- by which the application
  4701. responds to one or more X events (and happens to be handed an object handle
  4702. as part of the method argument list). Similarly, callback handlers registered
  4703. by an application with a widget can be thought of as methods of the
  4704. application which respond to messages from a widget or widgets.
  4705.  
  4706. [Thanks to Michael Johnson (michael@maine.maine.edu) and to Kerry Kimbrough]
  4707.  
  4708. ----------------------------------------------------------------------
  4709. Subject: 139)  How do I simulate a button press/release event for a widget?
  4710.  
  4711.     You can do this using XSendEvent(); it's likely that you're not setting
  4712. the window field in the event, which Xt needs in order to match to the widget
  4713. which should receive the event.
  4714.      If you're sending events to your own application, then you can use 
  4715. XtDispatchEvent() instead. This is more efficient than XSendEvent() in that you
  4716. avoid a round-trip to the server.
  4717.     Depending on how well the widget was written, you may be able to call
  4718. its action procedures in order to get the effects you want.
  4719.  
  4720. [courtesy Mark A. Horstman (mh2620@sarek.sbc.com), 11/90]
  4721.  
  4722. ----------------------------------------------------------------------
  4723. Subject: 140)  Can I make Xt or Xlib calls from a signal handler?
  4724.  
  4725.     No. Xlib and Xt have no mutual exclusion for protecting critical 
  4726. sections. If your signal handler makes such a call at the wrong time (which 
  4727. might be while the function you are calling is already executing), it can leave
  4728. the library in an inconsistent state. Note that the ANSI C standard points
  4729. out that behavior of a signal handler is undefined if the signal handler calls
  4730. any function other than signal() itself, so this is not a problem specific to
  4731. Xlib and Xt; the POSIX specification mentions other functions which may be
  4732. called safely but it may not be assumed that these functions are called by 
  4733. Xlib or Xt functions.
  4734.     You can work around the problem by setting a flag in the interrupt
  4735. handler and later checking it with a work procedure or a timer event which
  4736. has previously been added.
  4737.     R6 Xt will have support for signal handlers; there will be a
  4738. mechanism to set a flag in a signal handler and XtAppNextEvent will notice
  4739. that the flag has been set, and call the associated callbacks.
  4740.  
  4741.     Note: the article in The X Journal 1:4 and the example in O'Reilly 
  4742. Volume 6 are in error.
  4743.  
  4744. [Thanks to Pete Ware (ware@cis.ohio-state.edu) and Donna Converse 
  4745. (converse@x.org), 5/92]
  4746.  
  4747. An alternate solution is to create a pipe and add the read side of the pipe
  4748. as an input event with XtAppAddInput; then write a byte to the write side of
  4749. the pipe with your signal handler (write is re-entrant). The callback for the
  4750. read side of the pipe reads the byte and does the actual processing that you
  4751. intended. You may want the byte to be the signal number unless your callback
  4752. handles only one kind.
  4753.  
  4754. [Thanks to Steve Kappel (stevek@apertus.com)]
  4755.  
  4756. ----------------------------------------------------------------------
  4757. Subject: 141)  What are these "Xlib sequence lost" errors?
  4758.  
  4759.     You may see these errors if you issue Xlib requests from an Xlib error 
  4760. handler, or, more likely, if you make calls which generate X requests to Xt or 
  4761. Xlib from a signal handler, which you shouldn't be doing in any case. 
  4762.  
  4763. ----------------------------------------------------------------------
  4764. Subject: 142)  How can my Xt program handle socket, pipe, or file input?
  4765.  
  4766.     It's very common to need to write an Xt program that can accept input 
  4767. both from a user via the X connection and from some other file descriptor, but 
  4768. which operates efficiently and without blocking on either the X connection or 
  4769. the other file descriptor.
  4770.     A solution is use XtAppAddInput(). After you open your file descriptor,
  4771. use XtAppAddInput() to register an input handler. The input handler will be 
  4772. called every time there is something on the file descriptor requiring your 
  4773. program's attention. Write the input handler like you would any other Xt 
  4774. callback, so it does its work quickly and returns.  It is important to use only
  4775. non-blocking I/O system calls in your input handlers.
  4776.     Most input handlers read the file descriptor, although you can have an 
  4777. input handler write or handle exception conditions if you wish.
  4778.     Be careful when you register an input handler to read from a disk file.
  4779. You will find that the function is called even when there isn't input pending.
  4780. XtAppAddInput() is actually working as it is supposed to. The input handler is 
  4781. called whenever the file descriptor is READY to be read, not only when there is
  4782. new data to be read. A disk file (unlike a pipe or socket) is almost always 
  4783. ready to be read, however, if only because you can spin back to the beginning
  4784. and read data you've read before.  The result is that your function will almost
  4785. always be called every time around XtAppMainLoop(). There is a way to get the 
  4786. type of interaction you are expecting; add this line to the beginning of your 
  4787. function to test whether there is new data:
  4788.          if (ioctl(fd, FIONREAD, &n) == -1 || n == 0) return;
  4789. But, because this is called frequently, your application is effectively in a 
  4790. busy-wait; you may be better off not using XtAppAddInput() and instead setting 
  4791. a timer and in the timer procedure checking the file for input.
  4792.  
  4793. [courtesy Dan Heller (argv@ora.com), 8/90; mouse@larry.mcrcim.mcgill.edu 5/91;
  4794. Ollie Jones (oj@pictel.com) 6/92]
  4795.  
  4796. There are two alternatives: the simple one is to use XtAppAddTimeout instead
  4797. of XtAppAddInput and check for input occasionally; the more complex solution,
  4798. and perhaps the better one, is to popen or fork&exec a child which does
  4799. blocking reads on the file, relaying what it has read to your application via
  4800. a pipe or a socket. XtAppAddInput will work as expected on pipes and
  4801. sockets.
  4802.  
  4803. [Thanks to Kaleb Keithley (kaleb@x.org); 12/93]
  4804.  
  4805. ----------------------------------------------------------------------
  4806. Subject: 143)  Why do I get a BadMatch error when calling XGetImage?
  4807.  
  4808. The BadMatch error can occur if the specified rectangle goes off the edge of 
  4809. the screen. If you don't want to catch the error and deal with it, you can take
  4810. the following steps to avoid the error:
  4811.  
  4812. 1) Make a pixmap the same size as the rectangle you want to capture.
  4813. 2) Clear the pixmap to background using XFillRectangle.
  4814. 3) Use XCopyArea to copy the window to the pixmap.
  4815. 4) If you get a NoExpose event, the copy was clean. Use XGetImage to grab the
  4816. image from the pixmap.
  4817. 5) If you get one or more GraphicsExpose events, the copy wasn't clean, and 
  4818. the x/y/width/height members of the GraphicsExpose event structures tell you 
  4819. the parts of the pixmap which aren't good.
  4820. 6) Get rid of the pixmap; it probably takes a lot of memory.
  4821.  
  4822. [10/92; thanks to Oliver Jones (oj@pictel.com)]
  4823.  
  4824. ----------------------------------------------------------------------
  4825. Subject: 144)  How can my application tell if it is being run under X?
  4826.  
  4827.     A number of programs offer X modes but otherwise run in a straight
  4828. character-only mode. The easiest way for an application to determine that it is
  4829. running on an X display is to attempt to open a connection to the X server:
  4830.     
  4831.     display = XOpenDisplay(display_name);
  4832.     if (display)
  4833.         { do X stuff }
  4834.     else
  4835.         { do curses or something else }
  4836. where display_name is either the string specified on the command-line following
  4837. -display, by convention, or otherwise is (char*)NULL [in which case 
  4838. XOpenDisplay uses the value of $DISPLAY, if set].
  4839.  
  4840. This is superior to simply checking for the existence a -display command-line 
  4841. argument or checking for $DISPLAY set in the environment, neither of which is 
  4842. adequate. [5/91]
  4843.  
  4844. ----------------------------------------------------------------------
  4845. Subject: 145)  How do I make a "busy cursor" while my application is computing?
  4846. Is it necessary to call XDefineCursor() for every window in my application?
  4847.  
  4848.     The easiest thing to do is to create a single InputOnly window that
  4849. is as large as the largest possible screen; make it a child of your toplevel
  4850. window (which must be realized) and it will be clipped to that window, so it
  4851. won't affect any other application. (It needs to be as big as the largest
  4852. possible screen in case the user enlarges the window while it is busy or
  4853. moves elsewhere within a virtual desktop.) Substitute "toplevel" with your
  4854. top-most widget here (similar code should work for Xlib-only applications;
  4855. just use your top Window):
  4856.  
  4857.      unsigned long valuemask;
  4858.      XSetWindowAttributes attributes;
  4859.  
  4860.      /* Ignore device events while the busy cursor is displayed. */
  4861.      valuemask = CWDontPropagate | CWCursor;
  4862.      attributes.do_not_propagate_mask =  (KeyPressMask | KeyReleaseMask |
  4863.          ButtonPressMask | ButtonReleaseMask | PointerMotionMask);
  4864.      attributes.cursor = XCreateFontCursor(XtDisplay(toplevel), XC_watch);
  4865.  
  4866.      /* The window will be as big as the display screen, and clipped by
  4867.         its own parent window, so we never have to worry about resizing */
  4868.      XCreateWindow(XtDisplay(toplevel), XtWindow(toplevel), 0, 0,
  4869.          65535, 65535, (unsigned int) 0, 0, InputOnly,
  4870.          CopyFromParent, valuemask, &attributes);
  4871.  
  4872. where the maximum size above could be replaced by the real size of the screen,
  4873. particularly to avoid servers which have problems with windows larger than
  4874. 32767.
  4875.  
  4876. When you want to use this busy cursor, map and raise this window; to go back to
  4877. normal, unmap it. This will automatically keep you from getting extra mouse
  4878. events; depending on precisely how the window manager works, it may or may not
  4879. have a similar effect on keystrokes as well.
  4880.  
  4881. In addition, note also that most of the Xaw widgets support an XtNcursor 
  4882. resource which can be temporarily reset, should you merely wish to change the
  4883. cursor without blocking pointer events.
  4884.  
  4885. [thanks to Andrew Wason (aw@cellar.bae.bellcore.com), Dan Heller 
  4886. (argv@sun.com), and mouse@larry.mcrcim.mcgill.edu; 11/90,5/91]
  4887.  
  4888. ----------------------------------------------------------------------
  4889. Subject: 146)  How do I fork without hanging my parent X program?
  4890.  
  4891.     An X-based application which spawns off other Unix processes which 
  4892. continue to run after it is closed typically does not vanish until all of its 
  4893. children are terminated; the children inherit from the parent the open X 
  4894. connection to the display. 
  4895.     What you need to do is fork; then, immediately, in the child process, 
  4896.         close (ConnectionNumber(XtDisplay(widget)));
  4897. to close the file-descriptor in the display information. After this do your 
  4898. exec. You will then be able to exit the parent.
  4899.     Alternatively, before exec'ing make this call, which causes the file 
  4900. descriptor to be closed on exec.
  4901.         (void) fcntl(ConnectionNumber(XDisplay), F_SETFD, 1);
  4902.  
  4903. [Thanks to Janet Anstett (anstettj@tramp.Colorado.EDU), Gordon Freedman 
  4904. (gjf00@duts.ccc.amdahl.com); 2/91. Greg Holmberg (holmberg@frame.com), 3/93.]
  4905.  
  4906. ----------------------------------------------------------------------
  4907. Subject: 147)  Why doesn't anything appear when I run this simple program?
  4908.  
  4909. > ...
  4910. > the_window = XCreateSimpleWindow(the_display,
  4911. >      root_window,size_hints.x,size_hints.y,
  4912. >      size_hints.width,size_hints.height,BORDER_WIDTH,
  4913. >      BlackPixel(the_display,the_screen),
  4914. >      WhitePixel(the_display,the_screen));
  4915. > ...
  4916. > XSelectInput(the_display,the_window,ExposureMask|ButtonPressMask|
  4917. >     ButtonReleaseMask);
  4918. > XMapWindow(the_display,the_window);
  4919. > ...
  4920. > XDrawLine(the_display,the_window,the_GC,5,5,100,100);
  4921. > ...
  4922.  
  4923.     You are right to map the window before drawing into it. However, the 
  4924. window is not ready to be drawn into until it actually appears on the screen --
  4925. until your application receives an Expose event. Drawing done before that will 
  4926. generally not appear. You'll see code like this in many programs; this code 
  4927. would appear after window was created and mapped:
  4928.   while (!done)
  4929.     {
  4930.       XNextEvent(the_display,&the_event);
  4931.       switch (the_event.type) {
  4932.     case Expose:     /* On expose events, redraw */
  4933.         XDrawLine(the_display,the_window,the_GC,5,5,100,100);
  4934.         break;
  4935.     ...
  4936.     }
  4937.     }
  4938.  
  4939.     Note that there is a second problem: some Xlib implementations don't 
  4940. set up the default graphics context to have correct foreground/background 
  4941. colors, so this program could previously include this code:
  4942.   ...
  4943.   the_GC_values.foreground=BlackPixel(the_display,the_screen);    /* e.g. */
  4944.   the_GC_values.background=WhitePixel(the_display,the_screen);    /* e.g. */
  4945.   the_GC = XCreateGC(the_display,the_window,
  4946.                 GCForeground|GCBackground,&the_GC_values);
  4947.   ...
  4948.  
  4949. Note: the code uses BlackPixel and WhitePixel to avoid assuming that 1 is 
  4950. black and 0 is white or vice-versa.  The relationship between pixels 0 and 1 
  4951. and the colors black and white is implementation-dependent.  They may be 
  4952. reversed, or they may not even correspond to black and white at all.
  4953.  
  4954. Also note that actually using BlackPixel and WhitePixel is usually the wrong 
  4955. thing to do in a finished program, as it ignores the user's preference for 
  4956. foreground and background.
  4957.  
  4958. And also note that you can run into the same situation in an Xt-based program
  4959. if you draw into the XtWindow(w) right after it has been realized; it may
  4960. not yet have appeared.
  4961.  
  4962. ----------------------------------------------------------------------
  4963. Subject: 148)  What is the difference between a Screen and a screen?
  4964.  
  4965.     The 'Screen' is an Xlib structure which includes the information about
  4966. one of the monitors or virtual monitors which a single X display supports. A 
  4967. server can support several independent screens. They are numbered unix:0.0,
  4968. unix:0.1, unix:0.2, etc; the 'screen' or 'screen_number' is the second digit --
  4969. the 0, 1, 2 which can be thought of as an index into the array of available 
  4970. Screens on this particular Display connection.
  4971.     The macros which you can use to obtain information about the particular
  4972. Screen on which your application is running typically have two forms -- one
  4973. which takes a Screen and one with takes both the Display and the screen_number.
  4974.     In Xt-based programs, you typically use XtScreen(widget) to determine 
  4975. the Screen on which your application is running, if it uses a single screen.
  4976.     (Part of the confusion may arise from the fact that some of the macros
  4977. which return characteristics of the Screen have "Display" in the names -- 
  4978. XDisplayWidth, XDisplayHeight, etc.)
  4979.     
  4980. ----------------------------------------------------------------------
  4981. Subject: 149)  Can XGetWindowAttributes get a window's background pixel/pixmap?
  4982.  
  4983.     No.  Once set, the background pixel or pixmap of a window cannot be 
  4984. re-read by clients.  The reason for this is that a client can create a pixmap,
  4985. set it to be the background pixmap of a window, and then free the pixmap. The 
  4986. window keeps this background, but the pixmap itself is destroyed.  If you're 
  4987. sure a window has a background pixel (not a pixmap), you can use XClearArea() 
  4988. to clear a region to the background color and then use XGetImage() to read 
  4989. back that pixel.  However, this action alters the contents of the window, and 
  4990. it suffers from race conditions with exposures. [courtesy Dave Lemke of NCD 
  4991. and Stuart Marks of Sun]
  4992.  
  4993.     Note that the same applies to the border pixel/pixmap. This is a 
  4994. (mis)feature of the protocol which allows the server is free to manipulate the
  4995. pixel/pixmap however it wants.  By not requiring the server to keep the 
  4996. original pixel or pixmap, some (potentially a lot of) space can be saved. 
  4997. [courtesy Jim Fulton, then of X Consortium]
  4998.  
  4999. ----------------------------------------------------------------------
  5000. Subject: 150)  How do I create a transparent window?
  5001.     
  5002.     A completely transparent window is easy to get -- use an InputOnly
  5003. window. In order to create a window which is *mostly* transparent, you have
  5004. several choices:
  5005.     - the SHAPE extension first released with X11R4 offers an easy way to
  5006. make non-rectangular windows, so you can set the shape of the window to fit the
  5007. areas where the window should be nontransparent; however, not all servers 
  5008. support the extension.
  5009.     - a machine-specific method of implementing transparent windows for
  5010. particular servers is to use an overlay plane supported by the hardware.  Note 
  5011. that there is no X notion of a "transparent color index".
  5012.     - a generally portable solution is to use a large number of tiny 
  5013. windows, but this makes operating on the application as a unit difficult.
  5014.     - a final answer is to consider whether you really need a transparent
  5015. window or if you would be satisfied with being able to overlay your application
  5016. window with information; if so, you can draw into separate bitplanes in colors
  5017. that will appear properly.
  5018.  
  5019. [thanks to der Mouse, mouse@lightning.McRCIM.McGill.EDU, 3/92; see also
  5020. The X Journal 1:4 for a more complete answer, including code samples for this
  5021. last option]
  5022.  
  5023. ----------------------------------------------------------------------
  5024. Subject: 151)  Why doesn't GXxor produce mathematically-correct color values?
  5025.  
  5026.     When using GXxor you may expect that drawing with a value of black on a
  5027. background of black, for example, should produce white. However, the drawing
  5028. operation does not work on RGB values but on colormap indices. The color that
  5029. the resulting colormap index actually points to is undefined and visually
  5030. random unless you have actually filled it in yourself. [On many X servers Black
  5031. and White often 0/1 or 1/0; programs taking advantage of this mathematical
  5032. coincidence will break.]
  5033.     If you want to be combining colors with GXxor, then you should be 
  5034. allocating a number of your own color cells and filling them with your chosen
  5035. pre-computed values.
  5036.     If you want to use GXxor simply to switch between two colors, then you 
  5037. can take the shortcut of setting the background color in the GC (graphics 
  5038. context) to 0 and the foreground color to a value such that when it draws over 
  5039. red, say, the result is blue, and when it draws over blue the result is red. 
  5040. This foreground value is itself the XOR of the colormap indices of red and 
  5041. blue.
  5042.  
  5043. [Thanks to Chris Flatters (cflatter@zia.aoc.nrao.EDU) and Ken Whaley 
  5044. (whaley@spectre.pa.dec.com), 2/91]
  5045.  
  5046. ----------------------------------------------------------------------
  5047. Subject: 152)  Why does every color I allocate show up as black?
  5048.  
  5049.     Make sure you're using 16 bits and not 8.  The red, green, and blue 
  5050. fields of an XColor structure are scaled so that 0 is nothing and 65535 is 
  5051. full-blast. If you forget to scale (using, for example, 0-255 for each color) 
  5052. the XAllocColor function will perform correctly but the resulting color is 
  5053. usually black. 
  5054.  
  5055. [Thanks to Paul Asente, asente@adobe.com, 7/91]
  5056.  
  5057. ----------------------------------------------------------------------
  5058. Subject: 153)  Why do I get a protocol error when creating a cursor (sic)?
  5059.  
  5060.     You may have had this code working on a monochrome system by
  5061. coincidence.  Cursor pixmaps must always have a depth of 1; when you create
  5062. the cursor pixmap use the depth of 1 rather than the default depth of the
  5063. screen.
  5064.  
  5065. ----------------------------------------------------------------------
  5066. Subject: 154)  Why can't my program get a standard colormap?
  5067. I have an image-processing program which uses XGetRGBColormap() to get the 
  5068. standard colormap, but it doesn't work. 
  5069.  
  5070.     XGetRGBColormap() when used with the property XA_RGB_DEFAULT_MAP does 
  5071. not create a standard colormap -- it just returns one if one already exists.
  5072. Use xstdcmap or do what it does in order to create the standard colormap first.
  5073.  
  5074. [1/91; from der Mouse (mouse@larry.mcrcim.mcgill.edu)]
  5075.  
  5076. ----------------------------------------------------------------------
  5077. Subject: 155)  Why does the pixmap I copy to the screen show up as garbage? 
  5078.  
  5079.     The initial contents of pixmaps are undefined.  This means that most
  5080. servers will allocate the memory and leave around whatever happens to be there 
  5081. -- which is usually garbage.  You probably want to clear the pixmap first using
  5082. XFillRectangle() with a function of GXcopy and a foreground pixel of whatever 
  5083. color you want as your background (or 0L if you are using the pixmap as a 
  5084. mask). [courtesy Dave Lemke of NCD and Stuart Marks of Sun]
  5085.  
  5086. ----------------------------------------------------------------------
  5087. Subject: 156)  How can I most quickly send an image to the X server? 
  5088.  
  5089.     The fastest mechanism may be to use an XImage and the shared-memory
  5090. extension to reduce the transmission time.
  5091.     The MIT-SHM code, documentation, and example client programs can be 
  5092. found on the X11R5 source tape; many vendors also support the extension.
  5093.  
  5094. ----------------------------------------------------------------------
  5095. Subject: 157)  How do I check whether a window ID is valid?
  5096. My program has the ID of a window on a remote display. I want to check whether
  5097. the window exists before doing anything with it.
  5098.  
  5099.     Because X is asynchronous, there isn't a guarantee that the window 
  5100. would still exist between the time that you got the ID and the time you sent an
  5101. event to the window or otherwise manipulated it. What you should do is send the
  5102. event without checking, but install an error handler to catch any BadWindow
  5103. errors, which would indicate that the window no longer exists. This scheme
  5104. will work except on the [rare] occasion that the original window has been
  5105. destroyed and its ID reallocated to another window. 
  5106.     You can use this scheme to make a function which checks the validity
  5107. of a window; you can make this operation almost synchronous by calling
  5108. XSync() after the request, although there is still no guarantee that the
  5109. window will exist after the result (unless the sterver is grabbed). On the 
  5110. whole, catching the error rather than pre-checking is preferable.
  5111.  
  5112. [courtesy Ken Lee (klee@synoptics.com), 4/90; 12/93]
  5113.  
  5114. ----------------------------------------------------------------------
  5115. Subject: 158)  Can I have two applications draw to the same window?
  5116.  
  5117.     Yes. The X server assigns IDs to windows and other resources (actually,
  5118. the server assigns some bits, the client others), and any application that 
  5119. knows the ID can manipulate the resource [almost any X server resource, except
  5120. for GCs and private color cells, can be shared].
  5121.     The problem you face is how to disseminate the window ID to multiple 
  5122. applications. A simple way to handle this (and which solves the problem of the
  5123. applications' running on different machines) is in the first application to 
  5124. create a specially-named property on the root-window and put the window ID into
  5125. it. The second application then retrieves the property, whose name it also
  5126. knows, and then can draw whatever it wants into the window.
  5127.     [Note: this scheme works iff there is only one instance of the first
  5128. application running, and the scheme is subject to the limitations mentioned
  5129. in the Question about using window IDs on remote displays.]
  5130.     Note also that you will still need to coordinate any higher-level 
  5131. cooperation among your applications. 
  5132.     Note also that two processes can share a window but should not try to 
  5133. use the same server connection. If one process is a child of the other, it 
  5134. should close down the connection to the server and open its own connection.
  5135.     Note also that Display IDs and GC values describe addresses local
  5136. to an application and cannot be transmitted to another application.
  5137.     Note also that several clients may draw to a window but for particular
  5138. X events such as button-presses only one client can receive the event.
  5139.  
  5140. [mostly courtesy Phil Karlton (karlton@wpd.sgi.com) 6/90]
  5141.  
  5142. ----------------------------------------------------------------------
  5143. Subject: 159)  Why can't my program work with tvtwm or swm?
  5144.  
  5145.     A number of applications, including xwd, xwininfo, and xsetroot, do not
  5146. handle the virtual root window which tvtwm and swm use; they typically return 
  5147. the wrong child of root. A general solution is to add this code or to use it in
  5148. your own application where you would normally use RootWindow(dpy,screen):
  5149.  
  5150. /* Function Name: GetVRoot
  5151.  * Description: Gets the root window, even if it's a virtual root
  5152.  * Arguments: the display and the screen
  5153.  * Returns: the root window for the client
  5154.  */
  5155. #include <X11/Xatom.h>
  5156. Window GetVRoot(dpy, scr)
  5157. Display        *dpy;
  5158. int             scr;
  5159. {
  5160. Window          rootReturn, parentReturn, *children;
  5161. unsigned int    numChildren;
  5162. Window          root = RootWindow(dpy, scr);
  5163. Atom            __SWM_VROOT = None;
  5164. int             i;
  5165.  
  5166.   __SWM_VROOT = XInternAtom(dpy, "__SWM_VROOT", False);
  5167.   XQueryTree(dpy, root, &rootReturn, &parentReturn, &children, &numChildren);
  5168.   for (i = 0; i < numChildren; i++) {
  5169.     Atom            actual_type;
  5170.     int             actual_format;
  5171.     long            nitems, bytesafter;
  5172.     Window         *newRoot = NULL;
  5173.  
  5174.     if (XGetWindowProperty(dpy, children[i], __SWM_VROOT, 0, 1,
  5175.         False, XA_WINDOW, &actual_type, &actual_format, &nitems,
  5176.             &bytesafter, (unsigned char **) &newRoot) == Success && newRoot) {
  5177.             root = *newRoot;
  5178.             break;
  5179.         }
  5180.     }
  5181.  
  5182.     return root;
  5183. }
  5184.  
  5185. [courtesy David Elliott (dce@smsc.sony.com). Similar code is in ssetroot, a
  5186. version of xsetroot distributed with tvtwm. 2/91]
  5187.  
  5188. A header file by Andreas Stolcke of ICSI on ftp.x.org:contrib/vroot.h 
  5189. functions similarly by providing macros for RootWindow and DefaultRootWindow;
  5190. code can include this header file first to run properly in the presence of a
  5191. virtual desktop.
  5192.  
  5193. (Note the possible race condition.)
  5194.     
  5195. ----------------------------------------------------------------------
  5196. Subject: 160)  Can I rely on a server which offers backing store?  
  5197.  
  5198.     You can assume only that the X server has the capability of doing
  5199. backing store and that it might do so and keep your application's visuals
  5200. up-to-date without your program's involvement; however, the X server can run
  5201. out of resources at any time, so you must be able to handle the exposure
  5202. events yourself. You cannot rely on a server which offers backing store to
  5203. maintain your windows' contents on your behalf.
  5204.  
  5205. ----------------------------------------------------------------------
  5206. Subject: 161)  How do I catch the "close window" event to avoid "fatal IO error"?
  5207.  
  5208.     Several windows managers offer a function such as f.kill or f.delete
  5209. which sends a message to the application that it should delete its window;
  5210. this is usually interpreted as a shutdown message.
  5211.     The application needs to catch the WM_DELETE_WINDOW client message.
  5212. There is a good example in the xcalc sources in X11R5.
  5213.     Motif-based applications should in addition set the resource
  5214. XmNdeleteResponse on the top-level shell to XmDO_NOTHING, whether they are
  5215. using the Motif window manager or not.
  5216.     If the application doesn't handle this message the window manager may
  5217. wind up calling XKillClient, which disconnects the client from the display and
  5218. typically gives an Xlib error along the lines of "fatal IO error 32 (Broken 
  5219. pipe)".
  5220.  
  5221. [Thanks to Kaleb Keithley, kaleb@x.org; 11/93]
  5222.  
  5223. ----------------------------------------------------------------------
  5224. Subject: 162)  How do I keep a window from being resized by the user?
  5225.  
  5226.     Resizing the window is done through the window manager; window managers
  5227. can pay attention to the size hints your application places on the window, but 
  5228. there is no guarantee that the window manager will listen. You can try setting 
  5229. the minimum and maximum size hints to your target size and hope for the best. 
  5230.     Note that you may wish to reconsider your justification for this
  5231. restriction.
  5232.  
  5233. ----------------------------------------------------------------------
  5234. Subject: 163)  How do I keep a window in the foreground at all times?
  5235.  
  5236.     It's rather antisocial for an application to constantly raise itself
  5237. [e.g. by tracking VisibilityNotify events] so that it isn't overlapped -- 
  5238. imagine the conflict between two such programs running.  
  5239.     The only sure way to have your window appear on the top of the stack
  5240. is to make the window override-redirect; this means that you are temporarily
  5241. assuming window-management duties while the window is up, so you want to do 
  5242. this infrequently and then only for short periods of time (e.g. for popup 
  5243. menus or other short parameter-setting windows).
  5244.  
  5245. [thanks to der Mouse (mouse@larry.mcrcim.mcgill.edu); 7/92]
  5246.  
  5247. ----------------------------------------------------------------------
  5248. Subject: 164)  How do I make text and bitmaps blink in X?
  5249.  
  5250.     There is no easy way.  Unless you're willing to depend on some sort of
  5251. extension (as yet non-existent), you have to arrange for the blinking yourself,
  5252. either by redrawing the contents periodically or, if possible, by playing games
  5253. with the colormap and changing the color of the contents.
  5254.  
  5255. [Thanks to mouse@larry.mcrcim.mcgill.edu (der Mouse), 7/91]
  5256.  
  5257. ----------------------------------------------------------------------
  5258. Subject: 165)  How do I get a double-click in Xlib?
  5259.  
  5260.     Users of Xt have the support of the translation manager to help 
  5261. get notification of double-clicking.
  5262.     There is no good way to get only a double-click in Xlib, because the 
  5263. protocol does not provide enough support to do double-clicks.  You have to do 
  5264. client-side timeouts, unless the single-click action is such that you can defer
  5265. actually taking it until you next see an event from the server.  Thus, you 
  5266. have to do timeouts, which means system-dependent code.  On most UNIXish 
  5267. implementations, you can use XConnectionNumber to get the file descriptor of 
  5268. the X connection and then use select() or something similar on that.
  5269.     Note that many user-interface references suggest that a double-click
  5270. be used to extend the action indicated by a single-click; if this is the case
  5271. in your interface then you can execute the first action and as a compromise
  5272. check the timestamp on the second event to determine whether it, too, should
  5273. be the single-click action or the double-click action.
  5274.  
  5275. [Thanks to mouse@larry.mcrcim.mcgill.edu (der Mouse), 4/93]
  5276.  
  5277. ----------------------------------------------------------------------
  5278. Subject: 166)  How do I render rotated text?
  5279.     
  5280.     Xlib intentionally does not provide such sophisticated graphics 
  5281. capabilities, leaving them up to server-extensions or clients-side graphics
  5282. libraries.
  5283.     Your only choice, if you want to stay within the core X protocol, is to
  5284. render the text into a pixmap, read it back via XGetImage(), rotate it "by 
  5285. hand" with whatever matrices you want, and put it back to the server via 
  5286. XPutImage(); more specifically:
  5287.     1) create a bitmap B and write your text to it.
  5288.     2) create an XYBitmap image I from B (via XGetImage).
  5289.     3) create an XYBitmap Image I2 big enough to handle the transformation.
  5290.     4) for each x,y in I2, I2(x,y) = I(a,b) where 
  5291.         a = x * cos(theta) - y * sin(theta)
  5292.         b = x * sin(theta) + y * cos(theta)
  5293.     5) render I2
  5294.     Note that you should be careful how you implement this not to lose
  5295. bits; an algorithm based on shear transformations may in fact be better.
  5296.     The high-level server-extensions and graphics packages available for X 
  5297. also permit rendering of rotated text: Display PostScript, PEX, PHiGS, and GKS,
  5298. although most are not capable of arbitrary rotation and probably do not use the
  5299. same fonts that would be found on a printer.
  5300.     In addition, if you have enough access to the server to install a font
  5301. on it, you can create a font which consists of letters rotated at some
  5302. predefined angle. Your application can then itself figure out placement of each
  5303. glyph.
  5304.  
  5305. [courtesy der Mouse (mouse@larry.mcrcim.mcgill.edu), Eric Taylor 
  5306. (etaylor@wilkins.bmc.tmc.edu), and Ken Lee (klee@synoptics.com), 11/90;
  5307. Liam Quin (lee@sq.com), 12/90]
  5308.  
  5309.     InterViews (C++ UI toolkit, in the X contrib software) has support for
  5310. rendering rotated fonts in X.  It could be one source of example code.
  5311. [Brian R. Smith (brsmith@cs.umn.edu), 3/91]
  5312.     Another possibility is to use the Hershey Fonts; they are 
  5313. stroke-rendered and can be used by X by converting them into XDrawLine 
  5314. requests. [eric@pencom.com, 10/91]
  5315.  
  5316.     The xrotfont program by Alan Richardson (mppa3@syma.sussex.ac.uk) 
  5317. (posted to comp.sources.x July 14 1992) paints a rotated font by implementing 
  5318. the method above and by using an outline (Hershey) font.
  5319.     The xvertext package by Alan Richardson (mppa3@syma.sussex.ac.uk) is a 
  5320. set of functions to facilitate the writing of text at any angle.  It is on 
  5321. ftp.x.org as contrib/xvertext.5.0.shar.Z. 
  5322.  
  5323.     O'Reilly's X Resource Volume 3 includes information from HP about
  5324. modifications to the X fonts server which provide for rotated and scaled text.
  5325. The modifications are on ftp.x.org in contrib/hp_xlfd_enhancements.
  5326.  
  5327. ----------------------------------------------------------------------
  5328. Subject: 167)  Why doesn't my multi-threaded X program work (sic) ? 
  5329.  
  5330. You cannot use non-thread aware, non-reentrant libraries with threads.
  5331.  
  5332. If you must do this, you have only one choice: call the functions from the
  5333. initial thread only.
  5334.  
  5335. Why opening windows from other threads causes protocol errors can be
  5336. explained easily: you are accessing shared resources (the display
  5337. structure, the connection to the display, static data in the Xlib) from
  5338. a number of threads at the same time, without using any form of
  5339. exclusive access control.
  5340.  
  5341. [Thanks to casper@fwi.uva.nl (Casper H.S. Dik)]
  5342.  
  5343. Support for multi-threaded X programs (Xlib and Xt) will be in X11R6.
  5344.  
  5345. ----------------------------------------------------------------------
  5346. Subject: 168)  What is the X Registry? (How do I reserve names?)
  5347.  
  5348.     There are places in the X Toolkit, in applications, and in the X
  5349. protocol that define and use string names. The context is such that conflicts
  5350. are possible if different components use the same name for different things.
  5351.     The X Consortium maintains a registry of names in these domains:
  5352. orgainization names, selection names, selection targets, resource types,
  5353. application classes, and class extension record types; and several others.
  5354.     The list as of 7/91 is in the directory mit/doc/Registry on the R5
  5355. tape. The current Registry is also available by sending "send docs registry"
  5356. to the xstuff mail server.
  5357.     To register names (first come, first served) or to ask questions send 
  5358. to xregistry@x.org; be sure to include a postal address for confirmation.
  5359.  
  5360. [11/90; condensed from Asente/Swick Appendix H; 1/94]
  5361. ----------------------------------------------------------------------
  5362.  
  5363.  
  5364. David B. Lewis                     faq%craft@uunet.uu.net
  5365.  
  5366.         "Just the FAQs, ma'am." -- Joe Friday 
  5367. -- 
  5368. David B. Lewis        Temporarily at but not speaking for Visual, Inc.
  5369. day: dbl@visual.com    evening: david%craft@uunet.uu.net
  5370.